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

2024-04-12

我在这里束手无策。我已经尝试了所有我能找到的方法来让 NuGet 在 TFS 构建服务器上恢复我的包,但似乎没有任何效果。 (我签入的最新更改是here https://stackoverflow.com/questions/45680811/the-command-c-main-src-nuget-nuget-exe-restore-solutiondirectory-exited/45690012?noredirect=1#comment78354565_45690012)。我已经阅读了很多有关旧版本构建过程模板的问题的信息,因此我只是将构建更改为使用 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.

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

首先有两种方法可以进行nuget恢复MSBuild 集成恢复 and Visual Studio 中的自动恢复。有完全不同的事情。

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

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

您只能选择一种方式来执行恢复操作。根据您的错误消息 NuGet.targets not found,也许您还没有完成迁移到自动恢复 https://learn.microsoft.com/en-us/nuget/consume-packages/package-restore步。请再做一次或仔细检查。

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

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

请勿添加$(SolutionDir).nuget\nuget.exe restore -SolutionDirectory ..\到构建顺序中我的第一个项目的预构建事件。这是进行恢复的旧方法。就像描述的方式一样here https://learn.microsoft.com/en-us/nuget/consume-packages/team-foundation-build.

Nuget Restore.exe 已添加到 2013 (v12) 模板中。由于您正在使用TfvcTemplate.12.xaml,您不必再次添加。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NuGet 自动包恢复在我的构建服务器上不起作用 的相关文章

随机推荐