Roslyn 分析仪还可以通过 Visual Studio 灯泡图标显示自动代码修复,从而允许您立即修复代码。 ? 但是,如果你能捕捉到更多的错误呢? 让我向您介绍 Roslyn 分析器包。...使用包管理器 UI 在 Visual Studio 中安装包。 ? 安装包后,只需从解决方案资源管理器自定义分析器诊断。分析器节点将显示在解决方案资源管理器中的"引用"或"依赖项"节点下。...有关详细信息,请参阅 Roslyn 分析器与静态代码分析(1)和 FxCop 分析器常见问题解答(2)。 问:我可以编写自定义分析器吗? 答:当然可以!有关如何编写分析器的文档,请参阅此处(3)。...问:我应该使用 Roslyn 分析器还是 .editorconfig 规范代码样式? 答:Roslyn 分析器和 .editorconfig 文件是齐头并进的。...在 .editorconfig 文件或文本编辑器选项页上定义代码样式时,实际上正在配置内置于 Visual Studio 中的 Roslyn 分析器。 问:分析器在持续集成 (CI) 生成中工作吗?
本文将基于 Roslyn 开发一个 C# 代码分析器,你不止可以将分析器作为 Visual Studio 代码分析和重构插件发布,还可以作为 NuGet 包发布。...无论哪一种,你都可以在支持 Roslyn 分析器扩展的 IDE(如 Visual Studio)中获得如下面动图所展示的效果。...可以很容易看出,如果我们这个分析器带有多个诊断建议,那么在只读集合中返回多个 DiagnosticDescriptor 的实例。...// 在模板自带的实现中,这里判断类名是否包含小写字母,如果包含则创建一个新的诊断建议以改为大写字母。...我将在其他的博客中说明如何编写和使用分析器项目的单元测试。
可移植性分析器作为 Visual Studio Extension 提供,用于分析每个项目的一个程序集;也可以作为 ApiPort 控制台应用提供,用于按指定文件或目录分析程序集。...如何使用 .NET 可移植性分析器 若要开始在 Visual Studio 中使用 .NET 可移植性分析器,必须先从 Visual Studio Marketplace 下载扩展并进行安装。...解决方案范围视图 分析包含多个项目的解决方案的一个很有用的步骤是,可视化依赖项以了解程序集中各个子集的依赖关系。 一般的建议是,从依赖项关系图中的叶节点开始,以自下而上的方式应用分析结果。...若要在 Visual Studio 中分析整个项目,请在“解决方案资源管理器”中右键单击该项目,然后选择“分析程序集可移植性” 。...查看和解释可移植性结果 报表中仅显示目标平台不支持的 API。 在 Visual Studio 中运行分析后,你将看到弹出的 .NET 可移植性报表文件链接。
作为 Roslyn 入门篇文章,你将可以通过本文学习如何开始编写一个 Roslyn 扩展项目,如何开始分析一个解决方案(.sln)中项目(.csproj)的代码文件(.cs)。...---- 本文是 Roslyn 入门系列之一: Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 Roslyn 入门:使用...▲ 在 Visual Studio 新建项目,选择“控制台程序(.NET Framework)” 在目前(2018-06-02 01:26),如果我们需要像本文一样分析现有的解决方案和项目,那么 .NET...CSharpSyntaxRewriter 基类中的代码,我把它贴出来可以帮助我们理解它。...访问泛型参数 现在,我们继续在之前打开解决方案和项目文件的代码后面增添代码: // 从我们一开始打开的项目文件中获取语法树。
随着 Roslyn 的发布,带来了越来越多更强大的代码分析器,可以为编写高质量的代码带来更多的帮助。 作为 .NET/C# 开发者,强烈建议安装本文推荐的几款代码分析器。...Visual Studio 扩展形式的分析器可以让你一次安装对所有项目生效,但缺点是不能影响编译过程,只能作为在 Visual Studio 中编写代码时给出提示。...Visual Studio 2019 自带的分析器的诊断 ID 都是以 IDE 开头,因此你可以通过这个前缀来区分是否是 Visual Studio 2019 自带的分析器提示的。...提供了 500 多个代码分析和重构。更值得推荐的一个原因是他为 Visual Studio 原本的很多报告了问题的代码提供了生成解决问题代码的能力。...如果说其他几款分析器可以帮你解决一些基本设计问题或者 Bug 的话,这款分析器可以帮你发现更大范围的问题。 最典型的,也是我推荐这款分析器的最大原因是 —— 区域和本地化!
dotnet build 基础 你需要先了解 csproj 文件的结构,以便进行后续的学习: 理解 C# 项目 csproj 文件格式的本质和编译流程 - 吕毅 项目文件中的已知属性(知道了这些,就不会随便在...csproj 中写死常量啦) - 吕毅 Roslyn 在项目文件使用条件判断 - 林德熙 在了解到 csproj 文件结构之后,你可以通过迁移一些项目,并确保他们编译通过来练习: 将 WPF、UWP...Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling - 吕毅 还有一些 csproj 特性的使用: .NET/C# 中你可以在代码中写多个...Main 函数,然后按需要随时切换 - 吕毅 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 - 吕毅 使用链接共享 Visual Studio 中的代码文件 - 吕毅 为 Visual...Studio 使用通配符批量添加项目文件 - 吕毅 Roslyn 使用 Directory.Build.props 管理多个项目配置 - 林德熙 Roslyn 使用 Directory.Build.props
而且因为 Roslyn 优秀的 API,有更多扩展可以使用此快捷键生效,详见:基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer...转到所有 不能每次都去解决方案里面一个个找文件,对吧!所以一个快速搜索文件和符号的快捷键也是非常能够提升效率的。...Ctrl + , 转到所有(go to all) 不过我建议将其改成: Ctrl + N 这是 ReSharper 默认的转到所有(Goto Everything)的快捷键 这可以帮助你快速找到整个解决方案中的所有文件或符号...Ctrl + O 查找当前文件中的所有成员(只搜一个文件,这可以大大提高命中率) Ctrl + T 转到符号(只搜类型名称、成员名称) Ctrl + G 查找当前文件的行号(比如你在代码审查中看到一行有问题的代码...K, Ctrl + L 删除所有书签(会有对话框提示的,不怕误按) 如果配合书签面板,那么可以在调查问题的时候很方便在找到的各种关键代码处跳转,避免每次都寻找。
随着 Visual Studio 2019 更新,在 Visual Studio 中编写代码的时候也带来了基于 Roslyn 的代码质量分析。...另外,你甚至可以在整个代码仓库的外部文件夹放一个 .editorconfig 文件,这样,如果项目中没有对应的规则,那么外面文件夹中的 .editorconfig 规则就会生效,这相当于间接做了一个全局生效的规则集...在提示有问题的代码上按下重构快捷键(默认是 Ctrl + .),可以出现重构菜单,其中就有配置规则严重性的选项,直接选择即可自动添加到 .editorconfig 文件中。...如果项目中没有 .editorconfig 文件,则会自动在解决方案同目录下创建一个新的。...对这部分快捷键不了解的话可以阅读:提高使用 Visual Studio 开发效率的键盘快捷键 - walterlv。
本文将带你为你的某个库添加自动生成代码的逻辑。 本文以 dotnetCampus.Ipc 项目为例,来说明如何为一个现成的 .NET 类库添加自动生成代码的功能。...这是一个在本机内进行进程间通信的库,在你拥有一个 IPC 接口和对应的实现之后,本库还会自动帮你生成通过 IPC 代理访问的代码。...: 开始编写一个基本的代码生成器 使用代码生成器生成需要的代码 将代码生成器加入到现有的 NuGet 包中 调试代码生成器 一个基本的代码生成器 创建一个项目,例如 dotnetCampus.Ipc.Analyzers...至少要包含以下内容: TargetFramework 必须是 netstandard2.0,目前(Visual Studio 2022 和 MSBuild 17)不支持其他任何框架。...而我在 dotnetCampus.Ipc 库中编写的生成代码会稍微复杂一点,会根据项目中标记了 IpcPublic 的类的代码动态生成对这个类的代理访问和对接代码,使用的是 Roslyn 进行语义分析。
支持对源代码进行静态分析,以便在编译期间检测潜在的代码问题。也支持编写自定义诊断和代码修复,这使得开发人员可以根据自己的需求创建特定的诊断和修复工具。...Roslyn SDK预览版包含了用于代码生成、分析和重构的最新语言对象模型的草案。 我们希望在未来的预览版中包含用于脚本编写和交互使用C#和Visual Basic的API支持的草案。...这些体验可以在Visual Studio 2013上通过“Roslyn”终端用户预览版中预览。这个预览版是为了构建和测试基于Roslyn SDK的应用程序,并用于集成到Visual Studio中。...但是,不需要终端用户预览版,可以独立于Visual Studio在自己的应用程序中使用Roslyn API。 API 层 Roslyn由两个主要的API层组成——编译器API和工作区API。...例如,C# 或 Visual Basic 中的迭代器方法是一个单一的符号。然而,当迭代器方法被翻译为 CLR 元数据时,它是一个类型和多个方法。
Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性。以至于我们只需要编写很少量的代码便能够分析我们的源代码。之前我写过一些使用 Roslyn 进行语法分析的文章。...使用语法分析,可以轻松为代码编写提供各种错误报告以及修改代码(见这里)。而使用语义分析,你可以像在运行时使用反射一样,在编译时访问源代码中的各种类型、属性、方法等,特别适合用来分析引用、生成代码等。...如果你正在编写代码分析器(Analyzer)和修改器(CodeFix) 代码分析器和修改器的入口方法可以得到一个 SyntaxNodeAnalysisContext 类型的参数,这个参数里面就可以拿到...关于代码分析器(Analyzer)和修改器(CodeFix)可以参考我之前的这些博客: 可参考:基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器...来追踪项目的 API 改动,帮助保持库的 API 兼容性 - walterlv 可参考:使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 - walterlv
我曾经在 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 一文中提到过这样的想法,在这篇文章中,我希望只编写泛型的一个参数的版本 Demo,然后自动生成 2~16 个参数的版本...不过,在那篇文章中,我写了一个应用程序来完成这样的事情。我在另一篇文章 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 中说到我们可以将这样的应用程序打包成一个 NuGet 工具包。...于是,我想到可以使用 Roslyn。在项目中编写一段转换代码,我们使用通用的方式去编译和执行这段代码,以便完成各种各样日益增加的类型转换需求。...准备工作 与之前在 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码 中的不同,我们这次无需打开解决方案或者项目,而是直接寻找并编译源代码文件。...准备一份用于编译和执行代码文件 我直接使用 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 这篇文章中的例子。把其中最关键的文件拿来用于编译和生成试验。
Succinctly Roslyn 教程 零、简介 一、Roslyn 项目:.NET 编译器平台 二、Visual Studio 2015 中的编码:Roslyn 驱动的体验 三、穿越 Roslyn:...架构、API、语法 四、编写代码分析器 五、代码重构 六、向 NuGet 部署分析器 七、将分析器和重构部署到 Visual Studio 图库 八、工作区,代码生成,发出 Succinctly SciPy...VS2013 教程 零、简介 一、同步设置和通知 二、起始页回顾 三、代码编辑器改进 四、XAML 智能感知的改进 五、用于 Web 和 Windows Azure 的 Visual Studio...代码编辑器的改进 四、XAML 编辑改进 五、IDE 定制:窗口布局 六、回顾错误列表和调试改进 七、管理 NuGet 包 八、ASP.NET 和 Azure 的 Visual Studio 2015...五、保存部分文件的附加程序 六、测试您的附加程序 七、Visual Studio 环境 八、解决方案 九、项目 十、IDE 窗口 十一、文件 十二、代码窗口 十三、代码模型 十四、工具窗口 十五、源代码生成
.NET Compiler Platform (Roslyn) 分析器会检查 C# 或 Visual Basic 代码的代码质量和样式问题。...提示 如果使用的是 Visual Studio,则许多分析器规则都有相关的代码修补程序,可以应用它们来纠正问题。 代码修补程序显示在灯泡图标菜单中。...从 .NET 5 开始,无论是在命令行还是在 Visual Studio 内,你都可以在生成时启用代码样式分析。 代码样式冲突显示为带有“IDE”前缀的警告或错误。...这使你能够在生成时强制执行一致的代码样式。 Visual Studio:默认情况下,代码样式分析作为代码重构快速操作对 Visual Studio 中的所有 .NET 项目启用。...另请参阅 代码质量分析规则引用 代码样式分析规则引用 Visual Studio 中的代码分析 .NET 编译器平台 SDK 教程:编写第一个分析器和代码修补程序
,我们可以实时看到一个代码文件中的语法树。...这对我们基于 Roslyn 编写静态分析和修改工具非常有帮助。本文将介绍如何安装它和使用它。...正在分析的代码文件是 MSTestEnhancer 中的 ContractTestContext.cs;也就是我的另一篇文章 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码 中所采用的例子...如果你是 Visual Studio 2017.6,并且在安装 Visual Studio 时选择了 Visual Studio 扩展,那么你什么都不用做就已经安装好了。...现在,我们在代码文件中任意地移动光标、选择代码块,都可以在 Syntax Visualizer 中看到对应的语法节点。这对我们基于 Roslyn 编写静态分析和修改工具非常有帮助。
在本文中,您将了解 .NET 开发人员可用的各种工具。使用 .NET,您将拥有一个强大的软件开发工具包 (SDK),其中包括一个命令行界面 (CLI)。.....NET 命令行界面 .NET CLI 是一个跨平台的工具链,用于开发、构建、运行和发布 .NET 应用程序。.NET CLI 包含在 .NET SDK 中。...集成开发环境 您可以在Visual Studio Code、Visual Studio或Visual Studio for Mac 中编写 .NET 应用程序。...诊断和仪表 作为 .NET 开发人员,您可以使用常见的性能诊断工具来监控应用性能、使用跟踪分析应用、收集性能指标以及分析转储文件。您使用事件计数器收集性能指标,并使用分析工具深入了解应用程序的性能。...代码分析 .NET 编译器平台 (Roslyn) 分析器检查您的 C# 或 Visual Basic 代码是否存在代码质量和代码样式问题。有关详细信息,请参阅.NET 源代码分析概述。
其他选项(配置代码分析作为整体)可用作项目文件中的属性。 最常见的配置选项是规则的严重性。 你可以为任意规则(包括代码质量规则和代码样式规则)配置严重性级别。...例如,若要启用某个规则作为警告,可以向分析器配置文件文件添加以下键值对: dotnet_diagnostic....suggestion 违规行为以生成消息形式出现,在 Visual Studio IDE 中以建议形式出现。 silent 违规行为对用户不可见。 none 完全禁止显示规则。...Roslyn 分析器存储库列出了每个 .NET 版本的默认严重性。 在该表中,“禁用”与 none 对应,“隐藏”与 silent 对应,“信息”与 suggestion 对应。...提示 若要了解规则严重性在 Visual Studio 中的显示方式,请参阅严重性级别。 范围 单一规则 若要为单个规则设置规则严重性,请使用以下语法。 dotnet_diagnostic.
您可以“观看”该回购,以便在未来几个月内添加Linux和Mac支持。...您可以“观看”该回购,以便在未来几个月内添加Linux和Mac支持。...它允许应用程序以快速和容易的方式相互通信。 大部分复杂性都隐藏在库中,您可以专注于编写对您很重要的代码,而不是调试消息代码。 任何分布式应用程序的基础....AnyStatus - 一个免费的开放源代码Visual Studio扩展,可以添加监控功能并将状态通知建立到Visual Studio。...awesome-analyzers - .NET编译器平台(“Roslyn”)诊断分析器和代码修复的策划列表。
如果你正好有一个为 Visual Studio 2019(或更早)开发的插件,那么可以通过阅读本文完成对插件项目的升级,以支持 Visual Studio 2022。...至此,你再编译这个 Visual Studio 扩展项目,即可正常在旧的 Visual Studio 2019 和新的 Visual Studio 2022 上安装: 完整改法 如果你比较强迫症,我还是建议你完整改完整个项目...前者提供编写和调试扩展的能力,而后者提供了新建模板和 Roslyn 相关工具。...第二步:重新创建 VSIX 项目 新建一个 VSIX 项目: 第三步:复制并替换整个扩展文件 你可以把新创建项目的 csproj 文件和 source.extension.vsixmanifest 文件替换掉原项目的这两个文件...如果需要一个修改示例,你可以看我的一个 Pull Request(拉取请求): 为插件添加 Visual Studio 2022 的支持 by walterlv · Pull Request #28 ·
源生成器是 C# 9 中引入的一项功能,允许在编译过程中动态生成代码。 它们直接与 C# 编译器集成(Roslyn)并在编译时运行,分析源代码并根据分析结果生成附加代码。...源生成器提供了一种简化的自动化代码生成方法,无需外部工具或单独的预编译步骤。 通过无缝集成到编译过程中,源生成器可以提高生产力、减少错误并实现更高效的开发工作流程。...新引用不是传统的项目引用,必须手动编辑以包含 OutputItemType 和 ReferenceOutputAssembly 属性。...控制台应用程序本身不实现 HelloFrom 方法,而是在编译过程中从源生成器项目生成的源。 如果使用的是 Visual Studio,则可以看到源生成的文件。...在“解决方案资源管理器”窗口中,展开“依赖项”>“分析器”>“SourceGenerator”>“SourceGenerator.HelloSourceGenerator”,然后双击“Program.g.cs
领取专属 10元无门槛券
手把手带您无忧上云