我刚刚经历了一个地狱。事实证明,TFS一直在同步软件包,我最终得到了两个版本的Microsoft.Web.Optimization及其依赖项。 NuGet确信我安装了最新版本,甚至重新安装也没有改变。但与此同时,我的项目不会构建,或者,如果他们构建,他们将无法启动,抱怨他们无法找到清单中给出的库版本。
我设法通过从NuGet控制台卸载软件包,从硬盘中物理删除文件夹,然后重新安装(重新安装缺少的最新版本)来解决它。但是我手动删除的包文件夹仍然位于Source Control Explorer中。我无法删除它们,当我选择其中一个时,删除按钮显示为灰色。当我下次获得最新版本时,我担心他们会再来。
我该如何预防?我想完全从解决方案中删除它们。在最坏的情况下,可以忽略它们,但由于它们位于项目之上,我无法将它们输入到项目的.tfignore文件中,并且Visual Studio不允许我添加.tfignore文件解决方案本身。
答案 0 :(得分:1)
是否可以选择将Packages文件夹签入TFS? NuGet现在支持自动包恢复,它可以在构建时自动恢复包。
以下是迁移到此新模型的文档:http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore。
使用签入的包文件夹可以为您节省很多麻烦。
答案 1 :(得分:0)
可以在这篇文章中得到最好的回答: https://stackoverflow.com/a/40409464/1690217
NuGet文档提供了instructions on how to accomplish this,我刚刚针对VSTS(Azure托管的TFS)成功针对Visual Studio 2015。截至2016年11月,所有内容都已全面更新。这也适用于Visual Studio 2017 RTM(2017年3月)。
我添加了以下文件,如上所述:
<强> .tfignore 强>
\packages
!\packages\repositories.config
<强> .nuget \ nugget.config 强>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
我必须删除packages文件夹并检查删除,然后包恢复将启动并重建文件夹,但VS将不再自动将其添加到源代码管理中。