在踢完Jenkins(v2.8)版本后,工作区被清除,Git源被拉出并且" nuget.exe恢复my.sln" (v3.4.4)使用"执行Windows批处理命令"构建任务。检查Jenkins控制台输出表示恢复操作:
NuGet Config files used:
C:\Windows\system32\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config
Feeds used:
C:\Windows\system32\config\systemprofile\AppData\Local\NuGet\Cache
C:\Windows\system32\config\systemprofile\.nuget\packages\
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包。我的第一个想法,我可能在我的软件包配置中犯了一个愚蠢的错误,或者我不小心引用了错误的package.config ...但是,在构建服务器上执行完全相同的nuget restore命令显示:
NuGet Config files used:
C:\Users\admin\AppData\Roaming\NuGet\NuGet.Config
Feeds used:
C:\Users\admin\AppData\Local\NuGet\Cache
C:\Users\admin\.nuget\packages\
https://api.nuget.org/v3/index.json
Installed:
5 package(s) to packages.config projects
我不知道为什么Jenkins构建任务正在跳过,或者只是部分下载所需的包。有没有类似经历的人?
更新
创建了一个全新的测试项目并包含了一个缺少的软件包,修改了jenkins项目以从git中取出这个项目。点击nuget恢复mytest.sln它就可以了。仍然不明白为什么其他sln不起作用,但至少确定这种行为必须与解决方案或其中一个项目有关。不花更多的时间在这上面。将重新创建项目。
答案 0 :(得分:2)
哦,我觉得自己像个菜鸟。有些软件包是无意中使用git的。因此,当从git中提取源时,它还创建了一个包含两个包的包文件夹。这导致nuget恢复跳过它们已经存在的那些。如果nuget restore的输出表明是以某种形式跳过包下载,那将非常有用。可以节省我几个小时!