我们正在使用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自动检测:使用msbuild版本' 3.5'来自' C:\ Windows \ Microsoft.NET \ Framework \ v3.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
答案 0 :(得分:2)
答案 1 :(得分:1)
这似乎是由于您的路径中的msbuild.exe
(您的构建代理)版本 3.5 。 MSBuild 3.5没有两个.dll正在尝试动态加载(。Microsoft.Build.dll
和Microsoft.Build.Framework.dll
)。
解决此问题的解决方案,请确保NuGet.exe使用MSBuild 4.0或更高。这可以通过确保MSBuild 4.0或更高版本是第一个在您的路径中解析或通过
-msbuildversion
来完成 选项。例如,使用MSBuild 14.0(随Visual Studio 2015)。nuget.exe pack MyProj.csproj -msbuildversion 14.0
更多详情请参阅此类似问题 nuget pack fails when MSBuild version resolved to MSBuild 3.5