- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这样一个类:
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Io")]
public void ParaQueFalleCalidadCodigoUnoIo_ReglaCA1709()
{
}
public void ParaQueFalleCalidadCodigoDosIo_ReglaCA1709()
{
}
我使用自定义规则集文件CustomRules.ruleset
<RuleSet Name="RulesNet" ToolsVersion="10.0">
<RuleHintPaths>
<Path>C:\Fxcop10.0\Rules</Path>
</RuleHintPaths>
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1709" Action="Warning" />
</Rules>
</RuleSet>
当我运行内置代码分析工具的 VS2010 时,我收到此警告:
CA1709 : Microsoft.Naming : Correct the casing of 'Io' in member name '_Default.ParaQueFalleCalidadCodigoDosIo_ReglaCA1709()' by changing it to 'IO'.
现在,我可以在 FxCopCmd.exe 中使用相同的规则集文件 CustomRules.ruleset:
FxCopCmd.exe /gac /d:"C:\CompanyFramework\4.0.0.0" /f:"D:\TFS\Tests\WebApplication1\bin\WebApplication1.dll" /o:"resultsFxCop.xml" /ruleset:"=CustomRules.ruleset" /v
我收到2 个错误(FixCategory Breaking 和 Level Error)
CA1709 - Correct the casing of 'Io' in member name '_Default.ParaQueFalleCalidadCodigoUnoIo_ReglaCA1709()' by changing it to 'IO'.
CA1709 - Correct the casing of 'Io' in member name '_Default.ParaQueFalleCalidadCodigoDosIo_ReglaCA1709()' by changing it to 'IO'.
<Message Id="Io" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Status="Active" Created="2013-02-05 10:24:01Z" FixCategory="Breaking">
<Issue Name="Member" Certainty="85" Level="Error" Path="D:\TFS\Tests\WebApplication1" File="Default.aspx.cs" Line="21">Correct the casing of 'Io' in member name '_Default.ParaQueFalleCalidadCodigoUnoIo_ReglaCA1709()' by changing it to 'IO'.</Issue>
</Message>
<Message Id="Io" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Status="Active" Created="2013-02-05 10:24:01Z" FixCategory="Breaking">
<Issue Name="Member" Certainty="85" Level="Error" Path="D:\TFS\Tests\WebApplication1" File="Default.aspx.cs" Line="26">Correct the casing of 'Io' in member name '_Default.ParaQueFalleCalidadCodigoDosIo_ReglaCA1709()' by changing it to 'IO'.</Issue>
</Message>
在 resultsFxcop.xml 中,我看到了 CA1709: IdentifiersShouldBeCasedCorrectly 规则:
<Rule TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709">
<Name>Identifiers should be cased correctly</Name>
<Description>Type, namespace, and... OMITED.</Description>
<Resolution Name="Member">Correct the casing of '{0}' in member name {1} by changing it to '{2}'.</Resolution>
<Owner />
<Url>http://msdn.microsoft.com/library/ms182240(VS.100).aspx</Url>
<Email>[none]</Email>
<MessageLevel Certainty="85">Error</MessageLevel>
<File Name="namingrules.dll" Version="10.0.0.0" />
</Rule>
CA1709 规则的消息级别:
<MessageLevel Certainty="85">Error</MessageLevel>
两个问题:
现在,我修改 CustomRules.ruleset 并再次执行 FxCopcmd.exe
<Rule Id="CA1709" Action="None" />
我没有错误。
我修改了 CustomRules.ruleset 并再次执行 FxCopcmd.exe
<Rule Id="CA1709" Action="Ignore" />
我得到了同样的 2 个错误。
我需要使用 FxCopCmd.exe 和自定义规则集。
有什么建议吗?
更新
http://social.msdn.microsoft.com/Forums/en/vstscode/thread/3f8931da-9a4d-47a6-b331-8b6b07aea8d6
http://social.msdn.microsoft.com/forums/en-US/vstscode/thread/3cb6c50c-7095-4551-a4e3-a3cbc7cb85be
对于默认的 FxCop 规则,没有简单的方法来修改消息级别,
MessageLevel 是消息的重要性,例如如果您有数千条消息,那么首先开始解决关键(感叹号)错误可能是个好主意。
确定性 是规则编写者分配给每个规则的数字,它是消息导致代码更改的可能性。这个数字是根据领域专家和客户的反馈以及规则中使用的启发式方法避免误报的能力得出的。
修复类别:这表示如果代码之前已发布,则针对违规的修复是否是二进制破坏性更改。例如,您有一个拼写错误的图书馆,您已经将其运送给客户。您现在开始在其上运行 FxCop 并查看拼写错误。 FxCop 会告诉您这是一个重大变化。如果您修复了拼写错误并将新版本的库发送给客户,他们将无法在不更改和重新编译代码的情况下使用该库。因此,您可能希望忽略此 API 上的 FxCop 违规。另一方面,如果您从未发货,则完全可以解决 FxCop 违规问题。
最佳答案
Does SuppressMessage works for FxCopcmd.exe?
是的。您将需要使用定义的 CODE_ANALYSIS
编译符号进行编译,以便您的 SuppressMessage 属性包含在程序集中。一旦它们进入其中,FxCop 引擎就会识别它们,而不管用于运行分析的机制如何。
Why I get errors if Action is Warning, using Fxcopcmd.exe?
写入 FxCop 生成的报告的问题级别始终使用规则作者指定的级别。当您从 Visual Studio 中运行时,Visual Studio 集成插件会使用规则集中指定的级别覆盖此级别。当您运行 fxcopcmd.exe 时,将规则配置为警告与错误之间的唯一区别是检测到错误级别的规则违规将导致 fxcopcmd.exe 返回非零退出代码,从而允许您中断自动构建。
如果您希望 fxcopcmd.exe 在生成其报告时使用您的级别覆盖,您可能需要考虑在 http://visualstudio.uservoice.com/ 提出建议。 .
关于c# - VS2010 中的 FxCop 行为、代码分析和 SuppressMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14703765/
我熟悉 MSDN list ,但我想要一个按代码排序的列表。我们的许多开发人员无法方便地访问互联网,如果我能为他们提供离线的完整警告列表,那就太好了。 我希望它们按警告代码排序,因为这是它们在 Fxc
我将使用 fxcop 分析同一个 dll 的两个不同版本。 我只想显示这两个报告之间的差异。 有谁知道这是否可能? 谢谢你的时间。 最佳答案 是的,这是可能的,但是没有可用的内置工具。一种相当简单的方
我们所有的开发人员都使用 VS2010 专业版,因此无法进行代码分析。我希望他们在 checkin 之前使用 FxCop 来分析代码。我已经通过了规则并禁用了其中的一些规则并添加了其中的一些。我希
您希望看到哪些可定义的静态代码检查规则添加到 FxCop 和/或宪兵队? 您为什么希望看到添加的规则,例如有什么好处等? 你的规则如何实现? 最佳答案 我想很快地定义和实现我自己的规则。我为 FxCo
FxCop 为字段分配默认默认值时(此处为 false 为 bool): Resolution : "'Bar.Bar()' initializes field 'Bar.foo'
我们正在使用 FxCop,它会产生太多我们喜欢的误报。例如,如果使用反射调用私有(private)方法,则该方法被报告为可能未使用 - 可以理解,我们使用 SuppressMessage 属性显式抑制
FxCop 有一个 rule (CA1726)检查首选术语。这会查找诸如“Dont”之类的词,并告诉您将它们替换为“Do not”等更好的词。通常这很好,但是它反对的术语之一是“标志”。在我们公司,业
我在 TeamCity 8.0.6(内部版本 27767)中添加了一个构建步骤,以针对特定的 c# 项目程序集执行 FxCop。 当从 VS 2013 中运行 FxCop 并设置 MinimumRec
问题是什么? 我正在尝试安装 FxCop 10。要安装它,需要 Microsoft Windows SDK 7.1。我安装了 SDK。现在,要安装 FxCop,我必须运行 FxCopSetup.exe
我正在试用 FxCop(目前通过 UI,不包括在 CruiseControl.NET 等中)并且遇到了一些问题。拼写检查器似乎不喜欢我客户的公司名称和产品名称,它要求我: Correct the sp
希望在程序上使用静态调用图分析来发现哪些问题? FxCop 使用静态调用图分析,使用这种技术发现了什么问题? http://msdn.microsoft.com/library/bb429476.as
我尝试在精简版应用程序上使用 Microsoft FXCop 1.36 版,但在分析项目时出现以下错误。 The following referenced assembly could not be
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 8年前关闭。 Improve t
我最近开始在 Visual Studio 中的项目中使用代码分析。我创建了一个自定义规则集,用于我的所有项目,其中包括两个 Microsoft 定义的规则集。我一直在努力将 FxCop 集成到 CI
我有捕获所有内容并将其记录的代码。我通常不这样做,但是我正在编写一个HTTP处理程序,并希望返回适当的HTTP代码。无论如何,我将以下内容放在方法的顶部: [SuppressMessage("Micr
是否可以从所有FxCop分析中排除完整的 namespace ,同时仍使用SuppressMessageAttribute分析其余的程序集? 在我目前的情况下,我有一堆由LINQ to SQL生成的类
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我正在使用以下配置的构建服务器上构建和分析示例 C# 项目: Jenkins 1.630; SonarQube 5.3 及所有更新; FxCop 10.0 我在 Jenkins Job 中添加了以下步
我正在尝试通过 Sonar-runner 运行 FxCopCmd 10.0。但是,FxCop 返回错误,即使它生成了分析报告。由于它返回错误,因此 sonar-runner 不会发出报告。 为了隔离问
运行 FXCop 时出现以下错误: CA1800 : Microsoft.Performance : 'obj', a variable, is cast to type 'Job' multiple
我是一名优秀的程序员,十分优秀!