2017-08-15 102 views
0

我在这里结束了。我尝试了一切,我可以找到让NuGet恢复我的包在TFS构建服务器和没有似乎工作。 (我检查的最新变化是here)。我已阅读了很多关于构建过程模板的较旧版本的问题,因此我只是将构建更改为使用TfvcTemplate.12.xaml,并且仍然没有包被恢复。 (以上来自链接)这一最新的变化让我删除NuGet.targets文件,现在我得到一个错误说:NuGet自动包恢复在我的构建服务器上不适用于我

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. 

任何帮助将在这里非常感激!

回答

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流程模板。使用旧设置创建新的构建定义并使用该模板。最后触发建立...