我正在尝试使用NuGet Installer TeamCity构建步骤为.NET Core解决方案恢复NuGet包。 'MSBuild自动检测'选择MSBuild v4.0而不是.NET Core项目所需的v15.0:
[15:41:53][restore] Starting NuGet.exe 4.1.0.2450 from C:\TeamCity\buildAgent\tools\NuGet.CommandLine.4.1.0\tools\NuGet.exe
[15:41:53][restore] MSBuild auto-detection: using msbuild version '4.0' from 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319'.
[15:41:53][restore] Nothing to do. None of the projects in this solution specify any packages for NuGet to restore.
[15:41:53][restore] Process exited with code 0
这会导致在程序包恢复后运行的“MSBuild”TeamCity步骤中出现编译错误:
Assets file 'C:\TeamCity\...\MyProj\obj\project.assets.json' not found.
Run a NuGet package restore to generate this file.
对于'MSBuild'TeamCity步骤,我按照此SO answer中的说明手动选择MSBuildTools版本:
但我没有设法找到'NuGet Installer'步骤的类似设置。我错过了什么吗?
答案 0 :(得分:4)
我设法克服了这个问题,指定了-MSBuildPath
command line parameter:
答案 1 :(得分:2)
正如@PeterLai所说,nuget版本是正确的选择。
所以,因为我在这里遇到了同样的问题,我在Teamcity / Administration / Integrations / Tools中更新了Nuget。
我从3.4.3移到4.6.2,只是重建。
现在它找到我的视觉工作室2017 msbuild,版本15!
之前:
NuGet command: D:\...\NuGet.CommandLine.3.4.3\tools\NuGet.exe restore D:\...\proj.sln ... MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.
在:
NuGet command: D:\...\NuGet.CommandLine.4.6.2\tools\NuGet.exe restore D:\...\proj.sln ... MSBuild auto-detection: using msbuild version '15.5.180.51428' from 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin'.
答案 2 :(得分:1)
2件事,
可能是因为它从C:\ TeamCity \ buildAgent \ tools \ NuGet.CommandLine.4.1.0 \ tools \ NuGet.exe中的Starting NuGet.exe 4.1.0.2450文件夹运行它,而不是源代码目的就像你期望的那样。
您的项目中是否有package.config文件?
答案 3 :(得分:0)