gpt4 book ai didi

c# - 使用 msbuildworkspace 打开解决方案会给出没有详细信息的诊断错误

转载 作者:行者123 更新时间:2023-11-30 15:18:50 27 4
gpt4 key购买 nike

我正在尝试使用 Roslyn 和 MSBuildWorkspace 分析解决方案。该解决方案是一个新的解决方案,其中有2个类库项目,一个引用另一个。

它们是在 Visual Studio 2017、.Net 4.6.2 中创建的。

当我打开解决方案时,我在 workspace.Diagnostics 中收到两个一般错误,它们都是:Msbuild 在处理文件“PathToProject”时失败诊断或输出窗口中没有更多内容指示无法处理项目文件的原因。

解决方案打开代码:

namespace RoslynAnalyse
{
class Program
{
static void Main(string[] args)
{
LocalAnalysis();
}

private static void LocalAnalysis()
{
var workspace = MSBuildWorkspace.Create();
var solution = workspace.OpenSolutionAsync(@"D:\Code\Roslyn\RoslynAnalyse\SolutionToAnalyse\SolutionToAnalyse.sln").Result;
var workspaceDiagnostics = workspace.Diagnostics;

}
}
}

Microsoft.CodeAnalysis 的版​​本是 2.0.0.0。有人知道 MSBuild 失败的原因吗?我如何才能获得更多信息?

最佳答案

当 MSBuildWorkspace 无法以这种方式打开项目或解决方案时,几乎总是因为使用 MSBuildWorkspace 的应用程序不包含与 msbuild.exe.config 相同的绑定(bind)重定向。

MSBuild 使用绑定(bind)重定向来允许任务(通常已经使用可能不同版本的 msbuild API 库编译的 C# 代码)全部使用当前的 msbuild API。否则,msbuild 会出现运行时加载失败。

解决方案是将 app.config 文件添加到您的项目并将绑定(bind)重定向(msbuild.exe.config 文件的 assemblyBinding 部分)复制到您的文件中。

关于c# - 使用 msbuildworkspace 打开解决方案会给出没有详细信息的诊断错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43013142/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com