.Net Framework 项目上的 Visual Studio 代码分析
Posted
技术标签:
【中文标题】.Net Framework 项目上的 Visual Studio 代码分析【英文标题】:Visual Studio Code Analysis on .Net Framework Projects 【发布时间】:2021-06-24 11:46:24 【问题描述】:我正在尝试通过 Nuget 为现有的 .Net Framework 4.72 Web 应用程序启用代码分析。坦率地说,文档让我对要安装哪些软件包感到困惑。
我已经通过 nuget 安装了 Microsoft.CodeAnalysis.NetAnalyzers。
以下是我的 csproj 文件:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
...
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
这段代码加载有问题,但我只列出了以下两项:
warning CA2237: Add [Serializable] to ParseException as this type implements ISerializable
warning CA1001: Type 'Repository' owns disposable field(s) '_context' but is not disposable
还有其他要加载的包吗?
【问题讨论】:
如果您安装了Microsoft.CodeAnalysis.NetAnalyzers
NuGet 包,则不应将EnableNETAnalyzers
属性添加到您的项目文件或Directory.Build.props
文件中。安装 NuGet 包并将EnableNETAnalyzers
属性设置为true
时,会生成生成警告。详情请看这篇文章:docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/…
【参考方案1】:
如果您看到CA***
诊断,那么它正在工作。
您可以通过“依赖项”树(展开分析器节点)在您的项目中打开更多诊断。
此外,您必须将此PackageReference
和相关属性添加到解决方案中的每个项目。您可能希望在 Directory.Build.props
文件中执行此操作。
为什么您认为应该查看更多诊断信息?
【讨论】:
【参考方案2】:答案在 .Net Framework 项目的 References\Analyzers 节点中。 我可以验证 Microsoft.CodeAnalysis.NetAnalyzers 的存在。 规则现在默认为最小,这意味着我的应用中只有 2 个问题。
右键Analyzers|Open Active Ruleset...,可以自定义规则。
它没有帮助这个遗留项目有点不稳定。我必须创建一个新项目并引入分析器。
【讨论】:
以上是关于.Net Framework 项目上的 Visual Studio 代码分析的主要内容,如果未能解决你的问题,请参考以下文章
.NET 4.5 Framework 上的 WiX 检查总是返回一个值?
Microsoft 是不是仍支持 .NET Framework 上的 ASP.NET Core?
PowerShell 脚本返回机器上的 .NET Framework 版本?
powershell 获取安装在PC / Server上的最新版本的.NET Framework