如何保持VS2015 NuGet不添加包到TFS

VS2013有一个错误的地方,即使你告诉它不要使用.tfignore ,NuGet会将这些软件包添加到待处理的更改中。 有一个解决方法 ,但它不适用于VS2015 / NuGet3,和NuGet回到它的老花样。 有没有“怒江”的解决方法? 🙂

Microsoft Connect项目: NuGet尽pipe.tfignore添加包到TFS

看起来好像在NuGet Visual Studio 2015 Extension的3.2 RC版中已经修复 – 至less在这个版本中更新了这个版本。

关于这个问题的讨论可以在这里find,build议从NuGet 3.1更新到3.2 RC。

更新

该版本的3.2版本现在已经发布(在这里find),其中包括此修复程序。

澄清

为了得到这个工作,你需要两件事情:

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

如文件所示 :

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

这意味着您可以在用户configuration文件的默认configuration文件 (在%APPDATA%\NuGet\NuGet.Config )中指定<solution><add key="disableSourceControlIntegration" value="true" /></solution>在解决scheme目录中的NuGetconfiguration文件中,例如\MySolution\.NuGet\NuGet.config

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

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

…你可以指定你想要的任何path – 重要的是把它放在你的TFS工作区之外!

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

注 – 这项工作是在每个用户的基础上。

到现在为止,我一直在以每个解决scheme( \.nuget\NuGet.Config )的方式\.nuget\NuGet.Config同样的事情。 感谢@dsghi的洞察力!

确保您的解决scheme文件夹不包含.nuget文件夹(老办法)。 即使该文件夹不包含在解决scheme中,只在文件系统中,它将覆盖一切!

我有同样的问题,我还没有find一个真正的解决scheme。

目前唯一的解决方法是:

  • 右键单击“团队资源pipe理器 – 挂起的更改”中的包文件夹并select“撤消”。