0

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

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

我在 .NuGet 文件夹中添加了 3 个文件的解决方案中添加了“包还原”选项。

编辑

当我在另一台电脑上从 TFS 获得解决方案时,我遇到了同样的错误(缺少 dll),所以不仅仅是 TFS 构建服务有问题。

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

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

4

1 回答 1

1

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

若要在另一台 PC 上自动下载 NuGet 包,您需要在构建时启用 NuGet 包还原。您分两步执行此操作:

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

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

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

于 2013-07-17T19:36:12.683 回答