Jenkins找不到NuGet包。

13

我正在设置 Jenkins CI 服务器。我成功地执行了第一步:

nuget restore -NonInteractive  -ConfigFile Nuget.config -Verbosity Detailed -NoCache

这个可以正常工作,但是当我想用以下方式编译应用程序时:


C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe

并且 ${WorkSpace}\src\Weather.App.csproj 抛出了这个错误:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(178,5): error : The package HockeySDK.Core with version 4.1.6 could not be found in C:\WINDOWS\system32\config\systemprofile\.nuget\packages\. Run a NuGet package restore to download the package. [C:\Program Files (x86)\Jenkins\workspace\MyApp\Weather\Weather.App.csproj]

奇怪的是,冰球包(Hockey package)明显存在于路径中: enter image description here

如果我在我的VS2017本地项目中运行相同的命令,一切都会顺利进行。但是Jenkins服务器(与我的计算机相同)不会正确构建它。

有任何想法吗?谢谢


2
有任何进展吗?我们遇到了完全相同的问题。 - MarkDav.is
嗨,我已经解决了问题,如果我没记错的话,如果你将Jenkins作为服务运行,它将不会默认到正确的nuget文件夹,而是会去PC上的全局文件夹(适用于所有用户)。我必须将其作为控制台应用程序以当前用户身份运行,这样它就会默认到当前用户文件夹中的nuget包。我知道这并不理想,但是... - Fritjof Berggren
我也遇到了同样的问题,这个问题是在我从packages.config转移到project.json时开始出现的。我使用Gitlab CI,并将其作为系统服务运行。所以如果你找到了另一个解决方案,我很感兴趣阅读它。 - picrap
{btsdaf} - user2452157
{btsdaf} - Fritjof Berggren
有人能帮忙吗?https://stackoverflow.com/questions/62547882/unable-to-build-nuget-packages-during-jenkins-build?noredirect=1#comment110621540_62547882 - semwal
1个回答

1

这里有个技巧。

  1. 将nuget.exe放在构建服务器上的某个位置。

  2. 确保nuget.exe在PATH环境变量中。

  3. 重新启动Jenkins,以便它获取更新后的PATH环境变量

  4. 升级NuGet到最新版本

    nuget.exe update --self

在调用MSBUILD重建的Jenkins作业中,无法成功恢复nuget包

在MSBUILD清理之后、MSBUILD重建之前添加一个Windows批处理步骤,如下所示:

nuget restore <your_solution_file>.sln

解决方案文件的路径是相对于工作区的。

这将创建预期的packages目录。


我遇到了一个奇怪的问题,Nuget.exe无法下载一些包。在我的项目中的所有包中,它从不下载xunit :( - Vin Shahrdar
我也遇到了同样的问题。你能帮忙吗?https://stackoverflow.com/questions/62547882/unable-to-build-nuget-packages-during-jenkins-build?noredirect=1#comment110621540_62547882 - semwal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接