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

2024-01-05

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

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

当我打开解决方案时,我在工作区中收到两个一般错误。诊断,两者都是: 处理文件时 Msbuild 失败 '项目路径' 诊断或输出窗口中没有任何内容来指示处理项目文件失败的原因。

打开解决方案的代码:

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 相同的绑定重定向。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 msbuildworkspace 打开解决方案会出现没有详细信息的诊断错误 的相关文章

随机推荐

  • JSON 中位置 1 处出现意外标记 o

    我在下面的代码块中不断收到此错误 function openWebsocket url var ws ws websocket url ws onOpen function event console log Websocket conne
  • 编写更好的正则表达式以不使用惰性重复量词

    我有一个正则表达式
  • asp.net c# 复选框被选中吗?

    如何确定复选框是否被选中 非常困惑为什么这不起作用 就是这么简单 在我的网络表单上
  • 如何在 Visual Studio 2010 中从网站创建解决方案文件 (.sln)

    我将在这里使用 Visual Studio 术语 我有一个网站位于 Visual Studio 2010 Projects My Project Code WebSite 我想为此网站创建一个解决方案文件 sln 文件 该文件位于 Visu
  • PHP:确保数组仅包含来自某个类的对象

    在我的一些设置器中 我传递了一个对象数组 我想确保它只包含给定类的实例 阅读文档 这就是我所做的 class Foo public function construct class ErrorFoo public function cons
  • 自定义二进制文件的惯用 C# 反序列化?

    问候 执行二进制自定义格式的序列化 反序列化的最惯用方法是什么 例如 如何读取具有一组以字节为单位指定的标头 例如 4 4 16 4 8 8 4 16 的文件 没有填充 使用混合整数 byte types 换句话说 在指定结构时 如何实现与
  • Bash 在什么情况下不执行分词和通配符? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在这些情况下 Bash 不会在通配符中执行分词 赋值的 LHS 或 RHS 索引数组除外 var value simple varia
  • 如何将不使用空格的泰语句子拆分为单词?

    如何从泰语句子中拆分单词 英语中我们可以按空格分割单词 例子 I go to school 分割 I go to school 仅通过查看空间来分割 但是泰语没有空格 所以我不知道该怎么办 示例 spit 从 txt 文件到 输出另一个 t
  • C++:返回 C 字符串的最快方法

    我有一个简单的函数 它接受一个字符并返回一个字符串 在 C 中它看起来像 char get string char c switch c case A return some string Case B return some other
  • 捕获AsyncTask的异常。需要思考

    我想在 doInBackground 中捕获线程的异常并在 onPostExcecute 中打印错误消息 问题是我在 onPostExecute 中没有 Throwable 对象 如何在非 UI 线程中捕获异常 and 在 UI 线程中打印
  • 检测用户是否有打印能力?

    客户要求在其网站上添加打印按钮 并希望对没有打印能力的用户 例如 用户 隐藏该按钮 大多数移动设备 有没有办法通过JavaScript来检测客户端是否具有打印功能 该要求是有缺陷的 因为大多数用户代理可以 打印 并且 UA 是否可以打印的知
  • 查找对象数组中所有匹配的元素[重复]

    这个问题在这里已经有答案了 我有一个对象数组 我正在像这样的数组中搜索 let arr name string 1 arrayWithvalue 1 2 other that name string 2 arrayWithvalue 2 o
  • 在 gnuplot 中绘制两个轴

    是否可以在 gnuplot 中绘制两条曲线 其中有两个相应的轴 每个轴都有不同的比例 例如 y x 2 and y x 4在同一张图中 当用相同的比例绘制时 它们的变化足以让人 不舒服 您可以自动处理轴 而无需自己缩放它们并保持自动缩放 s
  • 如何使用 Quanteda 和 kwic 进行模糊模式匹配?

    我有医生写的文本 我希望能够突出显示上下文中的特定单词 我在文本中搜索的单词之前 5 个单词和之后 5 个单词 假设我想搜索 自杀 这个词 然后我将使用 quanteda 包中的 kwic 函数 kwic 数据集 模式 自杀 窗口 5 到目
  • 如何在 GitHub 上隐藏 MySQL 连接字符串 - 用户名和密码 (Java)

    我一直在努力寻找解决方案来解决我目前面临的困境 因此 我正在做一个小项目 创建一个简单的 POS 系统 我使用 Oracle MySQL 数据库来存储用户密码 商品名称 价格等信息 我使用 Amazon AWS 作为主机 当我在代码中连接到
  • 为什么 webkit 行夹紧在 Firefox 中不起作用?

    我使用这个 webkit 线夹 它在 Chrome 中有效 但在 Firefox 中无效 以下是代码 overflow hidden text overflow ellipsis display webkit box webkit box
  • 图像中的颜色匹配

    我有两张图像 切片 由两个相机传感器拍摄以完成一张图像 然而 由于传感器性能的一些差异 它们的颜色 色调有所不同 我需要将它们匹配以制作一张统一的图像 我用的是HistogramMatcher斐济包含的功能 图 J 解释here https
  • Firebase云函数中的空传播错误

    我正在寻找部署一个云功能 我可以从数据库中读取数据 我想验证对象深处是否存在字段 因此我尝试使用空传播运算符 预期行为 如果深层密钥不存在 或路径上的任何内容 则返回以下表达式不明确的 示例代码 if doc data key subKey
  • UITableViewCell 从底部开始时 UITableViewAutomaticDimension 问题

    我有一个有趣的问题 我有一个非常基本的表格视图 其中包含一堆不同高度的单元格 它使用 iOS 8 UITableViewAutomaticDimension 和自动布局约束 interface ViewController
  • 使用 msbuildworkspace 打开解决方案会出现没有详细信息的诊断错误

    我正在尝试使用 Roslyn 和 MSBuildWorkspace 来分析解决方案 该解决方案是一个新的解决方案 其中有 2 个类库项目 一个引用另一个 它们是在 Visual Studio 2017 Net 4 6 2 中创建的 当我打开