我们有一个基于.NET全框架的WPF应用程序,我们将其从.net 4.6.2移动到了4.7.1,同时在csproj文件中改为使用PackageReference而不是packages.config。在开发机上构建似乎没问题,包被下载并还原了,但是当我们在Windows Server 2012构建服务器上使用Jenkins构建时,NuGet包似乎没有正确还原。我们正在使用MSBuild v15.5和最新的"msbuild /restore"命令在构建时还原包。注意:使用以前的"nuget restore"调用方式确实可行,但我们应该能够现在使用msbuild /restore。包还原过程似乎在查看正确的NuGet服务器,并且似乎在没有错误的情况下完成了还原(这是在Jenkins上编译的测试解决方案,以隔离问题)。
Restore:
Restoring packages for c:\Jenkins\workspace\Test\ConsoleApp1\ConsoleApp1.csproj...
Committing restore...
Generating MSBuild file c:\Jenkins\workspace\Test\ConsoleApp1\obj\ConsoleApp1.csproj.nuget.g.props.
Generating MSBuild file c:\Jenkins\workspace\Test\ConsoleApp1\obj\ConsoleApp1.csproj.nuget.g.targets.
Writing lock file to disk. Path: c:\Jenkins\workspace\Test\ConsoleApp1\obj\project.assets.json
Restore completed in 577.05 ms for c:\Jenkins\workspace\Test\ConsoleApp1\ConsoleApp1.csproj.
NuGet Config files used:
c:\Jenkins\workspace\Test\NuGet.Config
C:\Windows\system32\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config
Feeds used:
http://devbuild/NuGetHost/nuget
https://api.nuget.org/v3/index.json
Done Building Project "c:\Jenkins\workspace\Test\ConsoleApp1.sln" (Restore target(s)).
但是当msbuild编译代码时,我们会遇到以下错误,看起来NuGet还没有被下载:
CSC : error CS0006: Metadata file 'C:\Windows\system32\config\systemprofile\.nuget\packages\log4net\2.0.8\lib\net45-full\log4net.dll'
could not be found [c:\Jenkins\workspace\Test\ConsoleApp1\ConsoleApp1.csproj]
你有任何想法为什么nuget包无法还原吗?
environment{ NUGET_PACKAGES="${env.WORKSPACE}/mynugetpackagecache" }
- Sau001