无法加载类型Microsoft.Build.Framework.SdkResultItem

问题描述

我有一个使用Roslyn API来分析单独解决方案中的C#代码的应用程序;一些Visual Studio更新之后,我在我的应用程序中收到此错误:

在处理文件'{单独的解决方案.csproj时,Msbuild失败 文件}”,并显示消息:无法加载类型 程序集中的“ Microsoft.Build.Framework.SdkResultItem” 'Microsoft.Build.Framework,版本= 15.1.0.0,文化=中性, PublicKeyToken = b03f5f7f11d50a3a'。

针对所分析的解决方案中的每个项目显示此错误;我可以在以下位置看到变量ws.Diagnostics中的错误:

using var ws = MSBuildWorkspace.Create();

ws.LoadMetadataForReferencedProjects = true;

var solution = await ws.OpenSolutionAsync(solutionPath,msbuildLogger: buildLogger,cancellationToken: cancellationToken);

在Visual Studio更新之前,我的代码已经工作;有什么方法可以修复它而无需重新安装Visual Studio?

我曾经尝试过使用 developer命令提示符重新安装Microsoft.Build.Framework参考,但无效。

解决方法

按照this site上的说明使用Microsoft.Build.Locator,并在调用MSBuildWorkspace.Create之前执行此操作。这样可以确保您具有绑定重定向,从而使您的版本保持独立。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...