【问题标题】:How to remove the nuget Packages folder from TFS?如何从 TFS 中删除 nuget Packages 文件夹?
【发布时间】:2014-07-11 10:26:21
【问题描述】:

我刚刚经历了一个 dll 地狱。原来 TFS 一直在同步包,我最终得到了两个版本的 Microsoft.Web.Optimization 及其依赖项。 NuGet 确信我安装了最新版本,甚至重新安装也没有任何改变。但与此同时,我的项目无法构建,或者如果他们构建了,他们将无法启动,抱怨他们找不到清单中给出的库版本。

我设法通过从 NuGet 控制台卸载软件包、从硬盘上物理删除它们的文件夹,然后重新构建(重新安装缺少的最新版本)来解决这个问题。但是我手动删除的包文件夹仍然存在于源代码管理资源管理器中。而且我无法删除它们,当我选择其中一个时,删除按钮是灰色的。恐怕下次我得到最新版本时他们会再次出现。

如何预防?我想将它们完全从解决方案中删除。在最坏的情况下,可以忽略它们,但由于它们位于项目之上,我无法将它们输入到项目的 .tfignore 文件中,并且 Visual Studio 不允许我添加 .tfignore 文件到解决方案本身。

【问题讨论】:

  • 在 Packages 文件夹中强制获取最新版本。之后就不会变灰了。那就删除吧。

标签: tfs nuget


【解决方案1】:

是否可以选择不将 Packages 文件夹签入 TFS? NuGet 现在支持自动包还原,它会在构建时自动还原包。

这里是迁移到这个新模型的文档:http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore

这可能会为您节省很多签入包文件夹的麻烦。

【讨论】:

  • 我知道这是一篇旧帖子,问题是 TFS 根本不应该跟踪包文件夹,正如 OP 正确指出的那样,它会导致各种不一致并占用您的带宽。当 TFS 尝试为您维护包文件夹时,包还原机制就会崩溃。
【解决方案2】:

可以说在这篇文章中得到了最好的回答: 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>

我必须删除包文件夹并签入删除,然后包还原将启动并重建文件夹,但 VS 将不再自动将其添加到源代码管理。

【讨论】:

    猜你喜欢
    • 2019-02-15
    • 2011-02-08
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    相关资源
    最近更新 更多