Nuget安装程序在TFS 2017构建中失败

4
我们正在使用Nuget Installer步骤来恢复TFS构建中丢失的Nuget包,但是此步骤出现以下错误:
E:\Builds\_tasks\NuGetInstaller_333b11bd-d341-40d9-afcf-b32d5ce6f23b\0.2.29\node_modules\nuget-task-common\NuGet\3.3.0\NuGet.exe restore -NonInteractive E:\Builds\test.sln MSBuild自动检测:从'C:\Windows\Microsoft.NET\Framework\v3.5'使用msbuild版本“3.5”。 解析E:\Builds\test.sln文件时发生错误:系统找不到指定的文件。(HRESULT异常:0x80070002) 错误:E:\Builds\Agent2017Update1_tasks\NuGetInstaller_333b11bd-d341-40d9-afcf-b32d5ce6f23b\0.2.29\node_modules\nuget-task-common\NuGet\3.3.0\NuGet.exe返回代码1失败 安装包未能安装
错误信息看起来令人困惑,因为构建代理上存在指定的文件。
TFS构建代理版本:2.112.0 TFS版本:TFS 2017更新1
2个回答

3
在高级选项中,将NuGet的版本更改为3.5。在过去的两个星期里,我一直遇到奇怪的问题,其中3.3会导致类似于您所经历的情况,而切换到3.5则可以按预期工作。

enter image description here

希望这对您也有用 =D

使用Nuget版本3.5.0时,我们仍然遇到了相同的错误,有其他解决方法吗? - Santhosh
这解决了我的确切问题。谢谢! - PCG
@Santhosh,抱歉不知道还有其他的 =( - Gordon Beeming

1
这似乎是因为你的路径中(即构建代理)的msbuild.exe版本为3.5。MSBuild 3.5没有nuget试图动态加载的两个.dll文件(Microsoft.Build.dllMicrosoft.Build.Framework.dll)。

A solution to fix this issue, please make sure NuGet.exe uses MSBuild 4.0 or higher. This can be done by making sure MSBuild 4.0 or higher is the first to resolve in your path or by passing the -msbuildversion option. For example, use MSBuild 14.0 (which shipped with Visual Studio 2015).

nuget.exe pack MyProj.csproj -msbuildversion 14.0

更多细节请参考此类似问题 当MSBuild版本解析为MSBuild 3.5时,nuget包失败


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接