6

有什么方法可以为每个项目默认激活 Visual Studio 2012 的代码分析功能?并且,如果可能,默认情况下将规则设置为“Microsoft 所有规则”。

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

4

1 回答 1

8

您可以编辑 Visual Studio 在创建新项目以添加通用导入时使用的默认项目模板,问题是在原型设计时您是否希望启用这些设置。

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

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

<Import Project="..\Build\MyCompanySettings.proj" />

然后在导入的文件中是这样的。这样,任何项目都具有相同的设置。

<?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>
于 2013-01-03T11:46:35.643 回答