默认情况下,为Visual Studio 2012中的每个项目激活代码分析

ldr*_*rdl 6 .net code-analysis default visual-studio-2012

有没有办法默认为每个项目激活Visual Studio 2012的代码分析功能?并且,如果可能,默认情况下将规则设置为"Microsoft All Rules".

每次创建新项目时,我都必须在项目属性中手动激活"在构建时启用代码分析",并且必须将规则设置为所有规则.有时我会忘记这样做,并且必须解决更多问题.如果它默认激活我可以防止.

小智 8

您可以编辑Visual Studio在创建新项目时添加常用导入时使用的默认项目模板,问题在于原型设计是否需要这些设置.

我倾向于确保每个项目都导入一组通用的msbuild属性和项目组.这在默认情况下不起作用,因为您必须编辑每个proj文件并添加导入,但优点是只需一行就可以放置这个导入的proj文件中的代码分析设置,例如,StyleCop设置,代码分析使用的字典文化,您自己的规则集文件,常见的AssemblyInfo.cs,snk文件等

我倾向于在.csproj的最后一行之前放置以下行

<Import Project="..\Build\MyCompanySettings.proj" />
Run Code Online (Sandbox Code Playgroud)

然后在导入的文件中这样的东西.这种方式的项目具有相同的设置.

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <PropertyGroup>
  <RunStyleCop>true</RunStyleCop>
  <StyleCopOverrideSettingsFile>..\Build\Settings.StyleCop</StyleCopOverrideSettingsFile>
  <RunCodeAnalysis>true</RunCodeAnalysis>
  <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  <SignAssembly>true</SignAssembly>
  <AssemblyOriginatorKeyFile>..\Build\MyCompany.snk</AssemblyOriginatorKeyFile>
  <CodeAnalysisRuleSet>..\Build\MyCompany.ruleset</CodeAnalysisRuleSet>
  <StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
  <SkipPostSharp>True</SkipPostSharp>
  <CodeAnalysisCulture>en-GB</CodeAnalysisCulture>
 </PropertyGroup>
  <ItemGroup>
   <None Include="..\Build\MyCompany.snk">
    <Link>MyCompany.snk</Link>
   </None>
   <CodeAnalysisDictionary Include="$(BuildTargetsDirectory)\MyCompanyCustomDictionary.xml">
    <Link>Properties\MyCompanyCustomDictionary.xml</Link>
   </CodeAnalysisDictionary>
   <Compile Include="..\Build\VersionInfo.cs" >
    <Link>Properties\VersionInfo.cs</Link>
   </Compile>
   <None Include="..\Build\MyCompany.ruleset" >
    <Link>MyCompany.ruleset</Link>
   </None>
  </ItemGroup>
  <Import Project="$(MSBuildProgramFiles32)\MSBuild\StyleCop\v4.7\StyleCop.targets" Condition="'$(RunStyleCop)' == 'true'"/>
</Project>
Run Code Online (Sandbox Code Playgroud)