如何从TFS中删除NuGet包文件夹?

4
我刚刚经历了dll地狱。原来TFS一直在同步包,结果我同时得到了两个Microsoft.Web.Optimization和它的依赖版本。NuGet坚信我已经安装了最新版,重新安装也没有改变什么。但与此同时,我的项目无法编译或者即使编译成功,也会报错说找不到清单中给定的库版本。
我通过从NuGet控制台卸载包,从硬盘物理上删除它们的文件夹,然后进行一个新的构建解决了这个问题(这将重新安装缺失的最新版本)。但是,我手动删除的包文件夹仍然存在于源代码控制资源管理器中。而且我不能删除它们,当我选择其中一个时,删除按钮被禁用。我担心下次获取最新版本时它们会再次出现。
我该如何避免这种情况?我想彻底将它们从解决方案中删除。在最坏的情况下,忽略它们也可以,但由于它们位于项目级别之上,我无法将它们输入到项目的.tfignore文件中,Visual Studio也不允许我向解决方案本身添加.tfignore文件。

在“Packages”文件夹上进行一次强制获取最新版本操作。之后它不会变灰。然后将其删除。 - Hamid Shahid
2个回答

1

以下是可能最好的答案: https://dev59.com/N3NA5IYBdhLWcg3wh-cC#40409464

NuGet文档提供了如何完成此操作的说明,我成功地遵循了这些说明,针对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将不再自动将其添加到源代码控制中。

1

我知道这是一篇老帖子,问题在于 TFS 根本不应该跟踪 packages 文件夹,正如 OP 所说,它会导致各种不一致和浪费你的带宽。当 TFS 尝试为你维护 packages 文件夹时,它就会崩溃。问题出在包还原机制上。 - Chris Schaller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接