首页 文章

关于开放解决方案的Roslyn错误:“处理文件'pathToFile'时,Msbuild失败并显示消息:该路径不是合法形式 . ”如何解决?

提问于
浏览
0

我正在尝试使用Roslyn分析一些解决方案,并使用标准代码打开解决方案:

var msWorkspace = MSBuildWorkspace.Create();
var solution = msWorkspace.OpenSolutionAsync(path).Result;

问题是解决方案中的项目未打开,msWorkspace.Diagnostics属性包含一个故障诊断:

使用消息处理文件'csprojPath'时,Msbuild失败:该路径不是合法格式 .

经典解决方案或标准 - 显示相同的故障诊断 .

使用Lib:Microsoft.CodeAnalysis.Workspaces,Version = 2.7.0.0

我检查了一条路 - 一切看起来都很好(测试了其中的5条) .

有人可以帮忙解决这个问题吗?

Upd1 在默认的VS桌面控制台应用程序上测试,出现故障诊断:处理文件'C:\Tests\ClassicConsole\ClassicConsole\ClassicConsole.csproj'时,Msbuild失败并显示消息:C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ Roslyn \ Microsoft.CSharp.Core.targets:(84,5):无法从程序集"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll"实例化"Csc"任务 . 请验证是否使用与计算机上安装的Microsoft.Build.Framework程序集相同的Microsoft.Build.Framework程序集版本构建了任务程序集,并确保主机应用程序没有缺少Microsoft.Build.Framework的绑定重定向 . 无法将'Microsoft.CodeAnalysis.BuildTasks.Csc'类型的对象强制转换为'Microsoft.Build.Framework.ITask'类型 . C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ Roslyn \ Microsoft.CSharp.Core.targets:(84,5):"Csc"任务已被声明或使用不正确,或者施工期间失败 . 检查任务名称和程序集名称的拼写 .

1 回答

  • 0

    来自this问题的Matt Warren的答案有所帮助:从MsBuild.exe.config向我的app.config添加"bindingRedirect"部分就足够了 .

相关问题