首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

译 | 使用Roslyn分析器高效编写更好的代码

例如内置于 Visual Studio 的Roslyn 拼写检查分析器。 假设您正在创建一个静态方法,并将 static 单词拼错为 statc。在运行代码之前,您将能够看到此拼写错误。...如果将规则严重性设置为警告,则会在代码收到该特定规则集的警告。 ? 现在,您已经了解了分析器工作原理,您可以提高工作效率,更快地编写更好的代码!...Q&A 问:此警告显示在 Visual Studio :"运行代码分析已弃用为 FxCop 分析器,该分析器在生成期间运行。...问:我应该使用 Roslyn 分析器还是 .editorconfig 规范代码样式? 答:Roslyn 分析器和 .editorconfig 文件齐头并进的。...在 .editorconfig 文件或文本编辑器选项页上定义代码样式时,实际上正在配置内置于 Visual Studio 的 Roslyn 分析器。 问:分析器在持续集成 (CI) 生成工作吗?

2.2K30

基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NETC# 源代码分析器 Analyzer 和修改器 CodeFixProvider

本文将基于 Roslyn 开发一个 C# 代码分析器,你不止可以将分析器作为 Visual Studio 代码分析和重构插件发布,还可以作为 NuGet 包发布。...不管哪一种,都可以让我们编写的 C# 代码分析器工作起来并真正起到代码建议和重构的作用。...无论哪一种,你都可以在支持 Roslyn 分析器扩展的 IDE(如 Visual Studio获得如下面动图所展示的效果。...开发准备 安装 Visual Studio 扩展开发工作负载 你需要先安装 Visual Studio 的扩展开发工作负载,如果你还没有安装,那么请先阅读以下博客安装: 如何安装和准备 Visual...Studio 插件相关的信息 这个项目在便已成功之后会生成一个 Visual Studio 插件安装包,Visual Studio 安装了此插件后将会对所有正在编辑的项目运行我们的分析器 这个项目在默认情况下启动项目

36320
您找到你想要的搜索结果了吗?
是的
没有找到

帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包

典型的例子,做一个生成版本号的工具 NuGet 包,或者做一个代码分析器。 本文将解决 NuGet 的几个坑,真正做到绝对没有的依赖传递。...注意,实际场景,这三个项目通常在不同的仓库,由不同的开发者开发。 ? 不过,为了方便起见,我打算直接在一个解决方案模拟这样的效果: ?...Studio 编译的时候,一切符合预期;就像下图这样,B 项目中没有声明对 A 的依赖: ?...令人遗憾的结果 然而使用命令行编译的时候,就不按照预期工作了;如下图这样,B 项目中出现了对 A 的依赖。 ? 命令行编译时使用这些命令效果都是一样的不管用。...另外,我还尝试将 Package.targets 的所有内容放到 里面以获得延迟到编译期执行的效果,但结论依然与上面一致,即仅能在 Visual Studio 中正常工作

74820

Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件

那只是 Unity 编辑器为了让你方便写 C# 代码临时生成给你用的。 默认 Unity 指定外部脚本编辑器时,会单纯打开 .cs 文件而已。...而如果指定了 Visual Studio 作为外部脚本编辑器,那么再从 Unity 打开 C# 项目时,将会生成 sln 和 csproj 文件,然后调用 Visual Studio 打开生成的 sln...这样的设计,有好处也有坏处: 有了 sln 和 csproj,Visual Studio 将能充分运行代码分析器,可以在类与其他符号之间跳转,可以有智能感知提示,可以实时发现编写代码错误(甚至引用错误...但让 Visual Studio 的各种功能激活后就会让我们这样的入门开发者产生误会,认为这其实就是 C# 项目,会尝试真的对这些项目进行可能超出 Unity 功能范围的修改。...真正在编译完成放到游戏中运行的, Assets 文件夹的文件。而外面的 sln 和 csproj 文件,应该加入到 .gitignore 文件,从版本管理忽略掉。

71750

推荐 .NETC# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包

如果你使用的旧版本的 Visual Studio,那么默认的代码分析规则集“最小建议规则集”。基于这个,写出来的代码其实只能说是能跑通过而已。...Visual Studio 扩展形式的分析器可以让你一次安装对所有项目生效,但缺点不能影响编译过程,只能作为在 Visual Studio 编写代码时给出提示。...Visual Studio 2019 自带的分析器的诊断 ID 都是以 IDE 开头,因此你可以通过这个前缀来区分是否 Visual Studio 2019 自带的分析器提示的。...比如下图稳定性的一个问题,直接 catch 了一个 Exception 基类: 虽然你可以通过配置规则严重性来消除提示,但是这样写通常代码也比较容易出现一些诡异的问题而难以定位。...提供了 500 多个代码分析和重构。更值得推荐的一个原因他为 Visual Studio 原本的很多报告了问题的代码提供了生成解决问题代码的能力。

46830

.NET 源代码分析概述

提示 如果使用的 Visual Studio,则许多分析器规则都有相关的代码修补程序,可以应用它们来纠正问题。 代码修补程序显示在灯泡图标菜单。...从 .NET 5 开始,无论在命令行还是Visual Studio 内,你都可以在生成时启用代码样式分析。 代码样式冲突显示为带有“IDE”前缀的警告或错误。...这使你能够在生成时强制执行一致的代码样式。 Visual Studio:默认情况下,代码样式分析作为代码重构快速操作对 Visual Studio 的所有 .NET 项目启用。...(然而,出于性能方面的原因,一些代码样式规则仍仅适用于 Visual Studio IDE。)...另请参阅 代码质量分析规则引用 代码样式分析规则引用 Visual Studio 代码分析 .NET 编译器平台 SDK 教程:编写第一个分析器代码修补程序

1.7K20

.NET周报 【7月第1期 2023-07-02】

NET分析器常被用于APM(应用性能诊断)、IDE、诊断工具,比如Datadog的APM,Visual Studio分析器以及Rider和Reshaper等等。...哈哈,在DUMP的分析旅程,跑在 Docker 的 .NET 占比真的不多,大概10个dump有 1-2 个 docker 的,市场决定了我的研究方向,为了弥补这一块的空洞,决定写一篇文章来分享下这三大异常下的捕获吧...这将允许您通过 Visual Studio 的聊天询问有关改进代码的问题。 更多 C# 支持、LINQ 嵌入提示、dotTrace Linux、macOS 源代码视图等。...【英文】Visual Studio Marketplace 的开源替代品避免退役 -- Visual Studio 杂志 https://visualstudiomagazine.com/articles...s=12 ---- C# 12 内联数组合并到 Visual Studio 2022 17.7 Preview 3

15020

10个用于C#.NET开发的基本调试工具

除了代码的常见问题外,一下工具还可以处理各种问题类型,包括: 性能问题 内存问题(GC压力和内存泄漏) 第三方引用库问题 生产中的问题 网络问题 1、Visual Studio 当涉及调试时,我们的主要工具就是...借助dotPeek,Visual Studio就像dnSpy一样调试任何第三方代码。要查看准确程度,请参阅我的文章:在Visual Studio调试没有符号的第三方.NET代码,后续会进行翻译。...6、OzCode OzCode独特的Visual Studio扩展。其唯一目的帮助你在Visual Studio中进行交互式调试。OzCode具有很多功能,可以分为4部分: 1....它不需要像Visual Studio这样的大型安装。但是我总是发现自己将转储文件复制到我的开发机器上,并使用内存分析器或者Visual Studio打开它们。这样更加有效。...例如,你可以将dotMemory用作内存分析器Visual Studio的内置分析器甚至PrefView。或者你可以使用RedGate的性能分析器来代替dotTrace。

2.5K50

帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包

典型的例子,做一个生成版本号的工具 NuGet 包,或者做一个代码分析器。 本文将解决 NuGet 的几个坑,真正做到绝对没有的依赖传递。...添加方法在 csproj 文件添加一行属性: 添加后,如果开发者安装了此 NuGet 包,将自动生成以下代码...注意,实际场景,这三个项目通常在不同的仓库,由不同的开发者开发。 ? 不过,为了方便起见,我打算直接在一个解决方案模拟这样的效果: ?...Studio 编译的时候,一切符合预期;就像下图这样,B 项目中没有声明对 A 的依赖: ?...另外,我还尝试将 Package.targets 的所有内容放到 里面以获得延迟到编译期执行的效果,但结论依然与上面一致,即仅能在 Visual Studio 中正常工作

90250

一个适合.NET Core的代码安全分析工具 - Security Code Scan

Visual Studio Marketplace上,我们发现了一款工具:Security Code Scan,以下简称SCS,它是一款开源的代码安全分析工具,其Github地址为:https://github.com...当然我们喜欢的.NET 和 .NET Core项目啦! SCS能够支持CI吗?   可以,通过MSBuild完美实现,后续会有介绍。 SCS支持哪些Visual Studio版本?   ...Visual Studio 2015及以上版本均支持,包括社区版、专业版和企业版。...三、SCS的规则集设置   和StyleCop.Analyzers之类的代码风格分析器一样,SCS也可以设置其规则集,对我们来说最有用的就是可以统一设置其严重性级别(比如:警告、信息还是错误)。...五、ASP.NET Core的安全   这里参考张队的《.NET Core 必备安全措施》一文的部分内容:   在ASP.NET Core 2.1,默认会让你启用HTTPS,而在2.0,默认启用的

1.3K20

C++最佳实践 | 1. 工具

另外提供: 问题跟踪、项目计划(包括Scrum等多个敏捷模板)、集成托管构建,所有特性都可以集成到Microsoft Visual Studio,仅支持Windows。...Studio Online[35] (http://www.visualstudio.com/what-is-visual-studio-online-vs) 与Visual Studio Online...PVS-Studio PVS-Studio[50]用于检测用C、C++和C#编写的程序源代码的bug的工具,对个人学术项目、开源非商业项目和个人开发者的独立项目都是免费的,可以在Windows和Linux...逆向测试 不要忘记确保测试代码的错误处理,并且确保其能够正常工作。如果目标100%的代码覆盖率,很明显这些错误场景也需要被覆盖的。...CNCC Customizable Naming Convention Checker[92](可自定义的命名约定检查器)可以报告代码遵循特定命名约定的标识符。

3.2K10

visual studio2013卸载教程_数据卸载

大家好,又见面了,我你们的朋友全栈君。 Visual Studio 在安装过程可能已在您的计算机上安装了附加组件。必须使用“添加或删除程序”按照下面所列顺序手动卸载这些组件。...以下组件可能已与 Visual Studio 一起安装到计算机上: Microsoft MSDN 2005 速成版 Microsoft Visual Studio 2005 Tools for Office...Runtime 语言包 Microsoft Visual Studio 2005 Tools for Office Runtime Microsoft Device Emulator 1.0 版...Studio 2005 64 位系统必备 Microsoft .NET Framework 2.0 SDK (x64) Microsoft Visual Studio 2005 Remote Debugger...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

58110

Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展插件项目迁移到 VS2022

首先我们确认一下,你原来的项目至少这样的结构: 一个 Visual Studio 扩展项目 有一个 Visual Studio 扩展清单文件 source.extension.vsixmanifest...升级时,此 VSIX 项目引用的其他项目(例如基于 .NET Standard 的分析器项目)无需升级 NuGet 包。...至此,你再编译这个 Visual Studio 扩展项目,即可正常在旧的 Visual Studio 2019 和新的 Visual Studio 2022 上安装: 完整改法 如果你比较强迫症,我还是建议你完整改完整个项目...项目文件里不会有之前版本为了解决一些特定的 bug 而额外写的 bugfix 代码 完整改法,即使用 Visual Studio 2022 来创建新的 VSIX 扩展项目。...第一步:请确保已安装 SDK 在开始菜单找到并启动 Visual Studio Installer,然后确保勾选 Visual Studio 扩展开发的工作负载,并将右边的 .NET Compiler

44750

使用 .editorconfig 配置 .NETC# 项目的代码分析规则的严重程度

随着 Visual Studio 2019 更新,在 Visual Studio 编写代码的时候也带来了基于 Roslyn 的代码质量分析。...有一些代码分析严重程度可能与团队约定的不一致,这时就需要配置规则的严重程度。另外如果个人使用插件安装了分析器,也可以配置一些严重程度满足个人的喜好。...另外,你甚至可以在整个代码仓库的外部文件夹放一个 .editorconfig 文件,这样,如果项目中没有对应的规则,那么外面文件夹的 .editorconfig 规则就会生效,这相当于间接做了一个全局生效的规则集....editorconfig 的内容 .editorconfig 分析器严重性内容就像下面这样: 1 2 3 4 5 6 7 8 9 10 [*.cs] # CC0097: You have missing...在提示有问题的代码上按下重构快捷键(默认 Ctrl + .),可以出现重构菜单,其中就有配置规则严重性的选项,直接选择即可自动添加到 .editorconfig 文件

24230

.NET平台系列24:从.NET Framework迁移到.NET Core.NET5的技术指南

对于许多项目,从 .NET Framework 移植到 .NET 相对简单的。 项目的复杂性决定了在项目文件的初始迁移之后要做多少工作。   ...代码访问安全性 (CAS) CAS 受 .NET Framework 支持、但在 .NET Framework 4.0 已停用的沙盒技术。...但是,如果你引用的库特定于 Windows 的(如 user32.dll 或 kernal32.dll),那么代码能在 Windows 上正常运行。...若要使用 Visual Studio 的 .NET 可移植性分析器,请从市场安装此扩展。 有关详细信息,请参阅 .NET 可移植性分析器。...使用 Visual Studio 转换 package.config 文件。 ✔️ 考虑升级到最新的项目文件格式,即使你还不能移植应用,也例外。

1.1K20

在vscode配置R的开发环境

写在前面 有时候各位使用R的用户不知道会不会有这样的感觉,visual studio和Rstudio由于负载过重,在打开或者加载R script时会出现加载过慢的情况,但对于很多数据工作者来说,variable...整体看起来效果还是非常不错的,开发者在整体上还是保留了Rstudio和visual studio对于View()这个函数的配置,还在此基础上添加了search功能,此外对Rshiny可视化的支持也非常棒...二 在visual studio code中下载R和R LSP client两个extension R extension作为基础的R语言插件,R LSP client作为代码编写时函数提示的辅助工具。...因为此文件夹存储每一次的vscode-R临时环境,在这样的条件下才能在此folder中产生一个临时环境,让vscode-R识别一个临时环境,从而让R session watcher的临时文件写入: ?...还是期待以后的开发者能够把这项功能开发的更加智能一些,毕竟还是在experimental阶段,未来的开发值得期待的。

11.3K20

适用于 Linux 的 .NET Core App Service 诊断工具正式发布

借助此功能,我们现在为收集可帮助您调试应用程序代码问题的深度诊断数据提供内置支持。这些数据包括内存转储和分析器跟踪。...分析问题 使用最新版本的 Visual Studio,您现在可以打开和分析在 Linux 上收集的托管转储,并使用 Visual Studio 可用的一流调试工具!...如果您的托管核心转储没有扩展名,您可以使用“打开文件”对话框,或将文件拖放到您的 IDE Visual Studio 会自动将其识别为 Linux 核心托管内存转储并将其打开。...本质上,您可以检查流程的每个细节,就像在 Linux 上的托管代码设置断点一样。 诊断分析 Visual Studio 还开发了一组分析器来帮助识别内存转储可能表明生产服务存在问题的关键信号。...Visual Studio 目前支持以下分析器,并在不久的将来推出新的和改进的分析: CLR 线程池 异步同步 死锁检测 查看有关针对托管 Linux 内存转储运行分析的更多详细信息。

1.4K20

.NET 标准

.NET 标准库和 Visual Studio 为了在 Visual Studio 构建 .NET Standard 库,请确保在 Windows 上安装了Visual Studio 2022、Visual...Studio 2019或 Visual Studio 2017 版本 15.3 或更高版本,或者在 macOS 上安装了Visual Studio for Mac 版本 7.1或更高版本。....NET 标准问题 以下 .NET Standard 的一些问题,有助于解释为什么 .NET 5 及更高版本是跨平台和工作负载共享代码的更好方式: 添加新 API 的缓慢 .NET Standard....NET 5+ 的解决方案:当一个功能被实现时,它已经可用于每个 .NET 5+ 应用程序和库,因为代码共享的。....NET 5+ 的解决方案: .NET 5+ SDK 包括默认启用的代码分析器。平台兼容性分析器检测到您打算运行的平台不支持的 API 的无意使用。有关详细信息,请参阅平台兼容性分析器

1.3K10
领券