在Team Foundation Service中找不到引用的Dll(或者:其他PC上没有的nuget包)

时间:2013-05-15 14:26:51

标签: tfs nuget tfsbuild

当我为Team Foundation Service创建构建时,我得到了所有类型的引用dll未找到的异常。

这些引用是由块包添加的。

我在解决方案中添加了'package restore'选项,该解决方案在.NuGet文件夹中添加了3个文件。

修改

当我从另一台PC上的TFS获得解决方案时,我得到了相同的错误(缺少dll),因此不仅TFS构建服务有问题。

缺少的dll是安装的nuget软件包丢失的文件(有些是默认VS模板的一部分,Unity是我后来添加的软件包),其中(软件包)添加在第一台电脑上,但随后丢失了下一个电脑(这就是为什么我在这个问题的标题中添加'或')

我怎样才能在pc2上添加Nuget添加文件?

1 个答案:

答案 0 :(得分:1)

我猜你现在已经找到了解决方案。我写这篇文章只是为了回答这个问题。

要在另一台PC上自动下载NuGet包,您需要在构建时启用NuGet包恢复。您可以分两步完成此操作:

  1. 右键单击解决方案,然后选择“启用NuGet包还原”。 这将添加一个.nuget解决方案文件夹,其下面是NuGet.Config,NuGet.exe和NuGet.targets。实际上应该将这些文件签入到源代码管理中,但二进制文件很小。它还将修改解决方案的所有项目中的MSBuild脚本,以导入NuGet.targets文件以将NuGet挂钩到构建过程中。

  2. 在工具中 - >库包管理器 - >程序包管理器设置确保选中“允许NuGet在构建期间下载丢失的程序包”选项。 必须在所有计算机上执行此步骤。

  3. 现在,所有项目构建脚本的BuildDependsOn属性都应该使NuGet.targets中的RestorePackages目标启动并下载丢失的包,然后才能获得缺少引用的构建错误。