如何防止VS2015 NuGet向TFS添加包

时间:2015-08-07 21:37:03

标签: visual-studio tfs nuget visual-studio-2015

VS2013有一个错误,即NuGet会将包添加为挂起的更改,即使你告诉它不要使用.tfignore。有一个workaround,但它不能与VS2015 / NuGet3一起使用,而NuGet又恢复了它的旧技巧。有没有" Nu"解决方法吗? : - )

Microsoft Connect项目:NuGet adds packages to TFS despite .tfignore

3 个答案:

答案 0 :(得分:41)

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

有关此问题的讨论可以在here找到,建议从NuGet 3.1更新到3.2 RC。

<强>更新

扩展版本3.2现已发布(找到here),其中包含此修复程序。

<强>澄清

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

  1. 包含nuget.config设置
  2. disableSourceControlIntegration文件
  3. 尊重disableSourceControlIntegration设置的NuGet Visual Studio 2015扩展版本(从3.2开始的版本应该有效)
  4. docs

    所示
      

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

    这意味着您可以在default config file中为您的用户个人资料(位于<solution><add key="disableSourceControlIntegration" value="true" /></solution>)或解决方案目录中的NuGet配置文件指定%APPDATA%\NuGet\NuGet.Config,例如{{1} }}

答案 1 :(得分:5)

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

<config>
  <add key="repositoryPath" value="C:\NuGetPackages" />
</config>
<solution>
  <add key="disableSourceControlIntegration" value="true" />
</solution>

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

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

注意 - 此作品基于每个用户。

到目前为止,我一直在以每配置一个配置(\.nuget\NuGet.Config)的方式做同样的事情。感谢@dsghi的见解!

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

答案 2 :(得分:0)

我遇到了同样的问题,但我还没有找到真正的解决方案。

到目前为止,我找到的唯一解决方法是:

  • 右键单击&#34;团队资源管理器中的包文件夹 - 待更改&#34; 并选择&#34;撤消&#34;。