我已经编辑了全局nuget.config以使用单个包文件夹。
我有一个由C#创建的新的空白VS2015控制台项目。我添加了一个NuGet引用,例如Newtonsoft.Json,然后VS创建一个packages.config,并将Newtonsoft.Json作为一个包列出。
这将被添加到.csproj文件中。
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\..\..\CxCache\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <Private>True</Private> </Reference>
生成项目时,Newtonsoft.Json二进制文件被复制到本地bin文件夹中。如果我从本地bin中删除了Newtonsoft.Json dll,它将在生成后被收回。
但是,我不想在csproj中使用HintPath属性(不想签入repo),所以我想,我应该能够删除HintPath,它可以正常工作。我从HintPath中删除.csproj行,并从本地bin中删除Newtonsoft.Json dll。
这一次在构建时,不会将全局nuget包文件夹中的Newtonsoft.Json二进制文件复制到本地bin。这附近有工作吗?
发布于 2016-08-04 20:28:06
Bin文件夹(TargetDir) -您生成的文件夹不应该是源代码管理的一部分。您需要HintPath,因为没有它,IDE将首先检查GAC,然后检查TargetDir,然后检查.它可能会在您的驱动器的某个地方找到完全不同版本的Newtonsoft dll,错误的文件。
您需要更正您的设置--永远不要将任何bin文件夹签入源代码管理。您应该在您的分支下有分支结构和packages文件夹,并且分支中的所有解决方案都可以使用它。您可以签入整个软件包文件夹,这样解决方案就不需要每次下载--这是可以的。但永远不要签入输出。HintPath可以包含相对路径,这样您就可以随心所欲地使用您的结构。明天,您可以将分支移动到源代码管理中的不同位置,您的相对路径将保持有效。当然-你需要HintPath
https://stackoverflow.com/questions/38779805
复制相似问题