【问题标题】:TFS get latest version does not restore referencesTFS 获取最新版本不恢复引用
【发布时间】:2016-10-09 18:55:15
【问题描述】:

我在我的机器上开发了一个项目,该项目已签入源代码控制 (tfs)。

我现在希望另一位开发人员与我一起开发该项目。他们已连接到 tfs 服务器并配置了本地工作区。但是,当他们说“获取最新版本”时,它会按预期下载项目,NUGET 按预期恢复包。但是几乎所有对包的引用都显示为丢失,因此项目将无法编译。

这是问题的截图。

这是我的 NuGet.Config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
</configuration>

这是我的 .tfignore 文件

\packages
!\packages\repositories.config

我不太确定可能是什么问题。我们都使用 Visual Studio 2015 Enterprise Update 2 和 TFS Express 2015 Update 2。 任何帮助表示赞赏。

【问题讨论】:

  • 您需要检查这些引用在 .csproj 文件中的样子,在记事本或类似工具中打开它并查看引用。
  • @LasseV.Karlsen 我会特别寻找什么?这是一个参考示例&lt;Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL"&gt; &lt;HintPath&gt;..\packages\log4net.1.2.10\lib\2.0\log4net.dll&lt;/HintPath&gt; &lt;Private&gt;True&lt;/Private&gt; &lt;/Reference&gt; 这与软件包正在运行的机器相匹配。谢谢
  • 那个文件夹在机器上是否正确?
  • @LasseV.Karlsen 两台机器上的文件夹结构相同。我刚刚尝试删除项目的本地副本并获取项目的最新版本。我可以看到包恢复到包文件夹,但它们在实际项目中仍然显示为丢失。

标签: visual-studio tfs


【解决方案1】:
  1. 检查 Nuget 包管理器是否更新到最新版本
  2. 检查 VS 中的 Nuget Package Manager 设置,确保选中以下项目:

允许 NuGet 下载丢失的包

在 Visual Studio 中构建期间自动检查丢失的包

【讨论】:

  • 这已在 Visual Studio 中设置。包确实恢复到 /packages,但项目将它们显示为缺少引用。
  • 尝试删除包文件夹并重新构建。
【解决方案2】:

最后的问题是,虽然我已经创建了 .tfignore 文件,但我已经将包文件夹签入到源代码管理中,所以这没有任何效果。

从 tfs 网页的代码部分中删除 packages 文件夹解决了此问题,并且包现在可以在新目标计算机上按预期恢复。

感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2014-11-22
    • 2011-11-04
    • 2017-01-02
    • 2016-09-08
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    相关资源
    最近更新 更多