两个不同版本的Nuget包还原问题

3

在nuget.exe版本3.4.4.132中,nuget restore能够正常工作,但在3.5中返回以下错误代码

Failed to load msbuild Toolset
  Could not load file or assembly 'Microsoft.Build, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
or one of its dependencies. The system cannot find the file specified.
An error occurred when executing task 'NugetRestore'.
Error: NuGet: Process returned an error (exit code 1).

请帮我解决这个问题。


你在那台机器上安装了哪个版本的Visual Studio? - shytikov
我遇到了同样的问题,而且我使用的是VS2017。 - LosManos
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.exe /version

Get-Command MSBuild.exe

希望对您有所帮助。


1
我使用了-MsBuildVersion 4.0参数,但是出现了相同的错误。如何指定MS Build版本3.5呢? - vijay
2
我已经安装了MSBuild 12,我也看到了这个问题。 - Dave Hein

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