Visual Studio Express for Desktop 2013 的代码分析规则集

Posted

技术标签:

【中文标题】Visual Studio Express for Desktop 2013 的代码分析规则集【英文标题】:Code Analysis Ruleset for Visual Studio Express for Desktop 2013 【发布时间】:2013-11-17 11:51:33 【问题描述】:

在哪里可以找到 Visual Studio Express for Desktop 2013 中用于代码分析的规则集?

据我了解,Visual Studio 的 Express 版本仅支持有限的规则集,但我找不到任何有关应用哪些规则的文档。

我猜可能是Managed Minimun Rules rule set for managed code,但MSDN documentation并不明确,只是说:

这些规则数量很少,它们仅用于运行 有限的 Visual Studio 版本。使用 MinimumRecommendedRules.ruleset 与其他 Visual Studio 版本。

【问题讨论】:

【参考方案1】:

Express 版似乎无法编辑规则集,但支持规则。 (至少对于 Visual Studio 2015 Express。)

我在社区版中编辑了一些规则并将其保存到项目中。在此之后,这些规则甚至在 Express 中也得到应用。不幸的是,我也找不到任何描述。

如果您想为项目添加扩展规则,请在项目文件中添加/更新一些行:

<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisRuleSet>MyProject.ruleset</CodeAnalysisRuleSet>

到您的项目进行所有配置;其中MyProject 是项目名称。 RunCodeAnalysis 行应该已经存在)

MyProject.ruleset 文件(示例) 是:

<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Rules for MyProject" Description="Code analysis rules for MyProject.csproj." ToolsVersion="14.0">
  <IncludeAll Action="Warning" />
  <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
    <Rule Id="CA2210" Action="None" />
    <Rule Id="CA1824" Action="None" />
    <Rule Id="CA1300" Action="None" />
  </Rules>
</RuleSet>

这个例子是基于AllRules.ruleset(当我没看错的时候)。上面的示例禁用了不应报告的三个规则。

可用的操作有:

None 禁用警告, Info(好像在这个例子中不起作用,可能和include动作类型有关)Warning Error Hidden

编辑:

Express Edition 似乎并不支持所有方法_(来自社区版)。但至少它仍然超出了标准定义的规则集。为了解决您最初的问题,规则集列表不可编辑,但您可以在 Visual Studio 目录中唯一的文件 *.ruleset 文件中找到它(c:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\Rule Sets\ManagedMinimumRules.ruleset)

例如速成版不支持/报告CA1303: Do not pass literals as localized parameters。

【讨论】:

【参考方案2】:

ManagedMinimumRules.ruleset 可以更改。

禁用只读文件属性,使用管理员模式启动文本编辑器并保存 然后再次运行代码分析(无需关闭VS)

不支持 Action.Info 和 Hidden

【讨论】:

感谢您的回复,但您能否解释一下步骤或/并添加有关如何执行的视觉帮助?

以上是关于Visual Studio Express for Desktop 2013 的代码分析规则集的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2015 Express for Desktop 是不是支持 JIT 调试?

Visual Studio Express 2012 for Web TypeScript EcmaScript 版本

在 Visual Studio Express 2013 for Web 中附加到进程

Microsoft Visual Studio 2010 Express for Windows Phone 64位下载

Visual Studio 2015 Express for Web 是不是支持 SQL Server Compact?

使用 MinGW C 编译器代替 Microsoft Visual Studio Express for Python