ASP.NET Web应用程序的FxCop规则列表子集

时间:2012-05-10 06:27:35

标签: fxcop

我们正在使用FxCop Integration VS Extension将FxCop与VS 2010专业人员集成以进行代码分析。我们已经看到,使用在FxCop中配置的所有默认规则集,我们得到了一大堆报告的点,这些点很好但不一定严格违反最佳实践,或者在大多数情况下可以不用。是否存在任何规则列表,基本上是FxCop中所有规则的子集,人们通常使用这些规则对基于Web的项目进行代码分析,这些项目可以被认为是必须的。我们轻率搜索但无法得到单数(关于忽略基于个人选择的特定规则的讨论遍布整个网络)资源,该资源列出了社区通常遵循的基于web的asp.net/C#的优选规则子集项目

2 个答案:

答案 0 :(得分:0)

实际上我使用的是TeamCity Integration,但规则应该相同。尝试下面一次:

<?xml version="1.0" encoding="utf-8"?>
<FxCopProject Version="1.36" Name="testApplication">
 <ProjectOptions>
  <SharedProject>True</SharedProject>
  <Stylesheet Apply="False">\tools\fxcop\Xml\FxCopReport.xsl</Stylesheet>
  <SaveMessages>
   <Project Status="Excluded" NewOnly="False" />
   <Report Status="Active" NewOnly="False" />
  </SaveMessages>
  <ProjectFile Compress="True" DefaultTargetCheck="True" DefaultRuleCheck="True" SaveByRuleGroup="" Deterministic="True" />
  <EnableMultithreadedLoad>True</EnableMultithreadedLoad>
  <EnableMultithreadedAnalysis>True</EnableMultithreadedAnalysis>
  <SourceLookup>True</SourceLookup>
  <AnalysisExceptionsThreshold>10</AnalysisExceptionsThreshold>
  <RuleExceptionsThreshold>1</RuleExceptionsThreshold>
  <Spelling Locale="en-GB" />
  <OverrideRuleVisibilities>False</OverrideRuleVisibilities>
  <CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" />
  <SearchGlobalAssemblyCache>False</SearchGlobalAssemblyCache>
  <DeadlockDetectionTimeout>120</DeadlockDetectionTimeout>
  <IgnoreGeneratedCode>False</IgnoreGeneratedCode>
 </ProjectOptions>
 <Targets>
    <Target Name="$(ProjectDir)/../../solution/PrecompiledWeb/application/bin/App_Code.dll" Analyze="True" AnalyzeAllChildren="True" />
 </Targets>
 <Rules>
  <RuleFiles>
   <RuleFile Name="$(FxCopDir)\Rules\DesignRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\GlobalizationRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\InteroperabilityRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\MobilityRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\NamingRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\PerformanceRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\PortabilityRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\SecurityRules.dll" Enabled="True" AllRulesEnabled="True" />
   <RuleFile Name="$(FxCopDir)\Rules\UsageRules.dll" Enabled="True" AllRulesEnabled="True" />
  </RuleFiles>
  <Groups />
  <Settings />
 </Rules>
 <FxCopReport Version="1.36" />
</FxCopProject>

答案 1 :(得分:0)

不,没有这样的野兽。即使有,你怎么能确定创建列表的人做出的决定是否真的适合你的情况呢?

只有200左右的规则。为什么不坐下来一两个小时才弄明白哪些是你认为重要的?你甚至可以采取一种捷径,只看看目前给你违规的那些。这可能会使筛选工作降低到不到1/2小时。