NuGet自动包恢复在我的构建服务器上对我不起作用

时间:2017-08-15 20:14:32

标签: nuget tfsbuild tfs2013 nuget-package-restore

我在这里的智慧结束了。我已经尝试了所有我能找到的东西让NuGet在TFS构建服务器上恢复我的软件包,似乎没有任何工作。 (我检查的最新更改得到here)。我已经阅读了很多关于旧版本的构建过程模板的问题,所以我只是将构建更改为使用TfvcTemplate.12.xaml,但仍然没有恢复包。这个最新的更改(来自上面的链接)让我删除了NuGet.targets文件,现在我收到一个错误说:

This project references NuGet package(s) that are missing on this computer.
Enable NuGet Package Restore to download them.  For more information, see 
http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is 
:\Builds\TFS\WebApps\src\WebApps\Main\Src\\.nuget\NuGet.targets.

1 个答案:

答案 0 :(得分:0)

因为你已经尝试了很多基于谷歌的解决方案。这可能会使您的环境变得复杂和混乱。

首先,有两种方法可以执行nuget还原 MSBuild集成还原在Visual Studio中自动还原。有完全不同的东西。

  

使用NuGet 2.7及更高版本,Visual Studio会自动恢复缺失   默认情况下,在构建开始时打包。

由于您使用的是NuGet 3.4,建议您使用自动还原。

您只能选择一种方法来执行还原操作。根据您的错误消息NuGet.targets找不到,也许您还没有完成Migrating to automatic restore步骤。请再试一次或仔细检查一下。

您还可以测试迁移,执行以下操作:

  • 从解决方案中删除软件包文件夹
  • 在Visual Studio中打开解决方案并开始构建。
  • 自动还原应下载并安装每个依赖项 包,而不将它们添加到源代码管理中。

不要在构建顺序中的第一个项目的预构建事件中添加$(SolutionDir).nuget\nuget.exe restore -SolutionDirectory ..\。这是执行还原的旧方法。就像描述here的方式一样。

Nuget Restore.exe已添加到2013(v12)模板中。由于您使用的是TfvcTemplate.12.xaml,因此无需再次添加。

非常怀疑你是否因为目前的两难困境而混淆了两种方式。建议您按照自动恢复过程,使用干净的环境,完成迁移到自动恢复步骤,在本地测试迁移,确保删除源代码管理中.nuget文件夹中的NuGet.exe和NuGet.targets文件,检查挂起的更改,检查具有Nuget Restore功能的TfvcTemplate.12.xaml流程模板。使用旧设置创建新的构建定义并使用该模板。最后触发构建......