Jenkins CI正在跳过nuget.exe restore my.sln上的程序包



Jenkins(v2.8)版本启动后,工作区被清除,Git源被拉入,并使用"执行Windows批处理命令"构建任务发出"nuget.exe restore my.sln"(v3.4.4)。检查Jenkins控制台输出指示恢复操作:

NuGet Config files used:
C:Windowssystem32configsystemprofileAppDataRoamingNuGetNuGet.Config
Feeds used:
C:Windowssystem32configsystemprofileAppDataLocalNuGetCache
C:Windowssystem32configsystemprofile.nugetpackages
https://api.nuget.org/v3/index.json
Installed:
3 package(s) to packages.config projects

到目前为止,一切看起来都很好,但经过调查,一些包被跳过了,因为我的package.config实际上包含5个包

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Dapper" version="1.42" targetFramework="net452" />
<package id="FluentMigrator" version="1.6.1" targetFramework="net452" />
<package id="FluentMigrator.Runner" version="1.6.1" targetFramework="net452" />
<package id="FluentValidation" version="6.1.0.0" targetFramework="net452" />
<package id="Newtonsoft.Json" version="8.0.2" targetFramework="net452" />
</packages>  

跳过了Dapper和FluentValidation软件包。我的第一个想法是,我可能在包配置中犯了一个愚蠢的错误,或者我不小心引用了错误的包.config…然而,在构建服务器上执行完全相同的nuget restore命令显示:

NuGet Config files used:
C:UsersadminAppDataRoamingNuGetNuGet.Config
Feeds used:
C:UsersadminAppDataLocalNuGetCache
C:Usersadmin.nugetpackages
https://api.nuget.org/v3/index.json
Installed:
5 package(s) to packages.config projects 

我不知道为什么Jenkins构建任务会跳过,或者只是部分下载所需的包。有没有人有类似的经历?

更新:

创建了一个全新的测试项目,并包含了一个丢失的包,修改了jenkins项目,改为从git中提取该项目。点击nuget restore mytest.sln,它就可以工作了。仍然不明白为什么其他sln不起作用,但至少确定这种行为一定与解决方案或其项目有关。不要再在这上面花时间了。将重新创建项目。

天哪,我觉得自己像个菜鸟吗。有些包是无意中提交给git的。因此,当从git中提取源代码时,它还创建了一个包含两个包的包文件夹。这导致nuget恢复跳过了那些已经存在的内容。如果nuget restore的输出表明is正在以某种形式跳过包下载,那将是非常有帮助的。本可以为我节省几个小时!

最新更新