如何防止VS2015 NuGet向TFS添加包

Edw*_*rey 43 tfs visual-studio nuget visual-studio-2015

VS2013有一个错误,NuGet会将包添加为挂起的更改,即使你告诉它不要使用.tfignore.有一个解决方法,但它不适用于VS2015/NuGet3,而NuGet又回到了它的旧技巧.是否有"Nu"解决方法?:-)

Microsoft Connect项目:尽管.tfignore,NuGet仍将包添加到TFS

nic*_*k_w 41

看起来这在NuGet Visual Studio 2015扩展的版本3.2 RC中得到修复- 至少这个版本的更新对我有用.

关于这个问题的讨论可以在这里找到,建议从NuGet 3.1更新到3.2 RC.

更新

扩展版本3.2现已发布(在此处找到),其中包括此修复程序.

澄清

要实现这一点,您需要做两件事:

  1. nuget.config包含该disableSourceControlIntegration设置的文件
  2. 一个尊重disableSourceControlIntegration设置的NuGet Visual Studio 2015扩展版本(从3.2开始的版本应该可以工作)

文档中所示:

NuGet首先从默认位置加载NuGet.config,然后从当前驱动器的根目录开始加载任何名为NuGet.config的文件,并以当前目录结束.

这意味着您可以<solution><add key="disableSourceControlIntegration" value="true" /></solution>默认配置文件中为您的用户配置文件(位于%APPDATA%\NuGet\NuGet.Config)或解决方案目录中的NuGet配置文件中指定,例如,\MySolution\.NuGet\NuGet.config.

  • 我发现最简单的方法是将`disableSourceControlIntegration`选项添加到`%APPDATA%\ NuGet\NuGet.Config`的默认配置文件中,如下所示:`<?xml version ="1.0"encoding ="utf-8"? > <configuration> <solution> <add key ="disableSourceControlIntegration"value ="true"/> </ solution> </ configuration> (14认同)
  • 我刚刚用VS2015做了一个新项目.使用Visual Studio的NuGet Package Manager 3.3.0.167.在"添加解决方案到源控件"时,它添加了包文件夹,子文件夹,二进制文件等.我不认为这个答案有效. (2认同)

Hel*_*iac 5

在您的%AppData%\NuGet\NuGet.Config文件中,在</configuration>XML标记之前添加以下内容...

<config>
  <add key="repositoryPath" value="C:\NuGetPackages" />
</config>
<solution>
  <add key="disableSourceControlIntegration" value="true" />
</solution>
Run Code Online (Sandbox Code Playgroud)

...你可以指定你想要的任何路径 - 重要的是将它放在你的TFS工作区外面!

现在你再也不用担心那些东西了.您的解决方案文件夹将不再包含任何包; 所有解决方案都将默认使用您的自定义包位置.

注意 - 此工作基于每个用户.

到目前为止,我一直在以one-config-per-solution(\.nuget\NuGet.Config)方式做同样的事情.感谢@dsghi的见解!

确保您的解决方案文件夹不包含.nuget文件夹(旧的处理方式).即使文件夹未包含在解决方案中且仅包含在文件系统中,它也会覆盖所有内容!

  • 我也是.我的意思是3.1打破了对该设置的支持 - 它在之前和之后都运行良好. (2认同)