Roslyn 分析器规则不会使构建失败

2023-11-26

继从this来自 MS 的教程,我为 Roslyn 创建了一个分析器。

根据页面,您可以将规则标记为DiagnosticSeverity.Error,这将导致构建中断:

在声明规则字段的行中,您还可以将要生成的诊断的严重性更新为错误而不是警告。如果正则表达式字符串无法解析,则 Match 方法肯定会在运行时抛出异常,并且您应该像处理 C# 编译器错误一样阻止构建。将规则的严重性更改为 DiagnosticSeverity.Error:

内部静态诊断描述符规则 = 新的 DiagnosticDescriptor(DiagnosticId, 标题, MessageFormat, 类别,DiagnosticSeverity.Error,isEnabledByDefault:true,描述:描述);

在我的代码中,我或多或少创建了如下详细规则:

private static readonly DiagnosticDescriptor Rule = 
  new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category,
  DiagnosticSeverity.Error, true, helpLinkUri: HelpUrl);

这条规则运作良好。它会抛出红线,并在错误列表中显示消息。但是,构建成功,并且我能够成功运行该应用程序。

NB:我创建了这个规则来捕获Thread.Sleep对于这个例子。

Code Capture

是否需要额外的设置来确保规则破坏构建?


这是从 VSIX 文件运行的分析器的一项功能。

如果 IDE 安装的规则作为 IDE 内构建的一部分运行,则将导致 IDE 构建和命令行构建具有可能非常不同的输出。例如,作为 VSIX 安装了代码破解器的用户最终可能会提交一份错误报告,指出开源项目由于分析器错误而无法构建(或者在项目使用 /warnaserror 时可能会出现警告)。他们将被迫卸载分析器扩展或修改项目使用的规则集以禁用仅存在于一名开发人员计算机上的某些规则。

相反,通过 NuGet 安装的规则成为项目和构建的一部分。它们在开发人员计算机上以相同的方式运行,并且在 IDE、命令行和自动化构建环境中以相同的方式运行。

来源:IDE 规则不会导致构建失败

为了使构建针对规则失败,您需要将分析器作为 nuget 包添加到项目中。这将确保失败将导致构建按预期失败。

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

Roslyn 分析器规则不会使构建失败 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • linux 中的 ruby​​:永久“source .rvm/scripts/rvm”?

    我是 Ruby on Rails 的新手 刚刚按照我找到的说明在 Ubuntu Linux 中进行了设置here 具体来说 作为s m 说 我卸载了所有内容 然后我以普通用户身份打开了另一个终端会话并运行 bash s 稳定 https r
  • 大多数视频未从 YouTube 获取 VideoUrl

    我在用 https www youtube com get video info 获取视频信息 缩略图 视频URL 要在自定义视频播放器中播放视频 但当单击 vevo 频道 视频时 它不返回任何视频 URL 我还尝试了 get video
  • Javascript 中可以实现 OOP 吗?

    我最近发现Javascript函数可以有类 所以我想知道OOP是否也可以通过javascript实现 是吗 如果是 您能否指出一些教程或网站 我可以从哪里开始 OOP绝对是可能的 虽然 Javascript 不像大多数面向对象语言那样具有
  • 线程错误:尝试释放挂起的线程时句柄无效 (6)

    在给定的示例中 我在调用时收到异常AThread Free program Project44 APPTYPE CONSOLE uses SysUtils Classes Windows type TMyException class Ex
  • 使容器在包裹子元素时收缩以适合它们

    我试图弄清楚 Flexbox 如何工作 应该工作 对于如下情况 holder width 500px background lightgray display flex flex direction row justify content
  • numpy.savetxt 可以用于 N>2 的 N 维 ndarray 吗?

    我正在尝试使用 numpy savetxt 将 4D numpy float 数组输出到纯文本文件 然而 numpy 给出一个错误 说当我尝试传递这个数组时需要一个 float 参数 尽管如此 numpy 文档指定要传递的参数应该只是像数组
  • SVN 到 Clearcase 导出

    我有一位客户非常坚持使用 Clearcase 是否有任何工具 脚本可以让我的团队针对 SVN 存储库 或者实际上anything除了 Clearcase 之外 但会定期自动将变更集同步回 Clearcase VOB 我的想法是 如果存在这样
  • 将 python 中的嵌套列表中的每个元素从 string 转换为 int [重复]

    这个问题在这里已经有答案了 我有带有嵌套列表的 python 数据 其中一部分如下所示 data 214 205 0 14 710 1813494849 0 214 204 0 30 710 1813494856 0 214 204 0 3
  • 如何从 ast.FunctionDef 节点创建函数对象?

    我试图了解 python 代码的执行过程 假设源有一个函数定义 使用ast parse 我将其解析为一个 ast 其中将包含一个实例FunctionDef节点类 该节点实例不是可调用的 并且与函数对象不同 如何从这个 ast 创建函数对象及
  • Linq 异常:只能从 linq to 实体调用函数

    我有一个StudentReceipts存储的表ReceiptNo as string 001 002 003 099 我想要获取最后一张收据的详细信息 以便增加下一笔交易的收据编号 这是我尝试过的 var lastGeneratedRecD
  • 将html表导出到Excel javascript函数特殊字符已更改

    我有以下将 html 导出到 Excel 的函数 function generateexcel tableid var table document getElementById tableid var html table outerHT
  • 删除 Github 中的自定义域

    我想从 Github 中删除自定义域 请提供任何帮助 其实我想得到https myaseen208 github io DialelAnalysisR 而不是http www myaseen208 com DialelAnalysisR 如
  • 亿级记录批量插入

    将 2 37 亿条记录插入具有规则 用于跨子表分配数据 的表中的最快方法是什么 我曾经尝试过或考虑过 插入语句 事务性插入 BEGIN and COMMIT The COPY FROM命令 http pgbulkload projects
  • HTML5 CANVAS 绘制图像

    这是我的问题 我有点不明白下面函数中的 sx 和 sy 是什么意思 context drawImage 图像 sx sy sw sh dx dy dw dh 我真正的意思是 如果我们改变 sx 和 sy 的值 并将 dx 和 dy 设置为固
  • 从 HttpServletRequest 对象获取发布的 XML

    我有一个接收 HttpServletRequest 的过滤器 该请求是一个 POST 其中包含一个我需要读入过滤器方法的 xml 从 HttpServletRequest 对象获取发布的 xml 的最佳方法是什么 这取决于客户如何发送它 如
  • 尽管元组是不可变的,但它们在交互模式下存储在不同的地址中。为什么?

    t 1 2 3 t1 1 2 3 print id t print id t1 上面几行代码在Python中的脚本模式下给出了相同的地址 但在交互模式下它输出了不同的地址 谁能解释一下原因吗 当编译脚本时 编译器可以搜索所有等效的元组并生成
  • Vue.js 如何在 v-for 循环中使用单选按钮

    我正在尝试使用单选按钮 以便用户可以选择其中一张照片作为他们的个人资料照片 ul li div div div photo id p imgId div div div li ul
  • 如何在 R 中同时按两列对行进行排序?

    以下是根据 v2 列进行排名的代码 x lt data frame v1 c 2 1 1 2 v2 c 1 1 3 2 x rank1 lt rank x v2 ties method first 但我真的想根据 v2 和 然后 v1 进行
  • SQL 中的分层标记

    我有一个 PHP Web 应用程序 它使用 MySQL 数据库进行对象标记 其中我使用了被接受为答案的标记结构这个问题 我想实现一个标签层次结构 其中每个标签都可以有一个唯一的父标签 然后 搜索父标签 T 将匹配 T 的所有后代 即 T 父
  • Roslyn 分析器规则不会使构建失败

    继从this来自 MS 的教程 我为 Roslyn 创建了一个分析器 根据页面 您可以将规则标记为DiagnosticSeverity Error 这将导致构建中断 在声明规则字段的行中 您还可以将要生成的诊断的严重性更新为错误而不是警告