首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >NuGet / MSBuild不将二进制文件复制到没有HintPath的本地输出文件夹

NuGet / MSBuild不将二进制文件复制到没有HintPath的本地输出文件夹
EN

Stack Overflow用户
提问于 2016-08-04 17:34:58
回答 1查看 1.3K关注 0票数 1

我已经编辑了全局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。这附近有工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-04 20:28:06

Bin文件夹(TargetDir) -您生成的文件夹不应该是源代码管理的一部分。您需要HintPath,因为没有它,IDE将首先检查GAC,然后检查TargetDir,然后检查.它可能会在您的驱动器的某个地方找到完全不同版本的Newtonsoft dll,错误的文件。

您需要更正您的设置--永远不要将任何bin文件夹签入源代码管理。您应该在您的分支下有分支结构和packages文件夹,并且分支中的所有解决方案都可以使用它。您可以签入整个软件包文件夹,这样解决方案就不需要每次下载--这是可以的。但永远不要签入输出。HintPath可以包含相对路径,这样您就可以随心所欲地使用您的结构。明天,您可以将分支移动到源代码管理中的不同位置,您的相对路径将保持有效。当然-你需要HintPath

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38779805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文