Jenkins 詹金斯找不到nuget软件包

Jenkins 詹金斯找不到nuget软件包,jenkins,msbuild,continuous-integration,nuget,Jenkins,Msbuild,Continuous Integration,Nuget,我正在设置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}\s

我正在设置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]
奇怪的是,曲棍球包显然存在于路径中:

如果我在VS2017本地项目中运行相同的命令,那么一切都会顺利运行。但是jenkins服务器(在我的同一台机器中)没有正确地构建它

有什么想法吗?谢谢

这是诀窍

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

  • 确保nuget.exe位于PATH环境变量中

  • 重新启动Jenkins,以便它拾取更新的PATH环境变量

  • 将NuGet升级至最新版本

    nuget.exe更新——self

  • 在Jenkins作业中,对MSBUILD调用rebuild将无法成功还原nuget包

    在MSBUILD清理之后和MSBUILD重新生成之前添加Windows批处理步骤,如下所示:

    nuget restore.sln

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


    这将按照您的预期创建packages目录。

    对此有任何解决方案吗?我们遇到了完全相同的问题。您好,我让它工作了,如果我记得正确,如果您运行Jenkins as service,它将不会默认为正确的nuget文件夹,并将转到PC中的全局文件夹(适用于所有用户)。我必须将其作为当前用户的控制台应用程序运行,因此它将默认为当前用户文件夹中的nuget包。我知道这并不理想,但……我也有同样的问题,从packages.config迁移到project.json时就开始出现了。我使用Gitlab CI,运行程序作为系统服务运行。因此,如果你找到了另一个解决方案,我很有兴趣阅读它。我对PackageReference也有同样的问题。我不是以系统用户而是本地用户的身份运行jenkins服务,从而首先“解决”了这个问题。现在我懊悔地回到packages.config。我对PackageReference还有一个问题。对我来说,它似乎不成熟…:(它还不成熟。我现在的工作方式是使用Jenkins处理一些基本的事情,然后我有一个WPF应用程序监听文件夹中正在更改的文件,从那里我运行自己的命令,在Jenkins不参与的情况下完成我的工作。效率更高,头痛更少!我遇到了一个奇怪的问题,Nuget.exe没有下载som在我的项目的所有包中,它从不下载xunit:(我也有同样的问题。你能帮我吗?)。