6

すべてのプロジェクトで Visual Studio 2012 のコード分析機能を既定で有効にする方法はありますか? また、可能であれば、デフォルトでルールを「Microsoft All Rules」に設定できます。

新しいプロジェクトを作成するたびに、プロジェクトのプロパティで「ビルド時にコード分析を有効にする」を手動で有効にし、ルールをすべてのルールに設定する必要があります。ときどきそれを忘れて、さらに多くの問題を修正しなければならないことがあります。デフォルトで有効化されていれば防げたのに。

4

1 に答える 1

8

新しいプロジェクトを作成して共通のインポートを追加するときに Visual Studio が使用する既定のプロジェクト テンプレートを編集できます。

私は、すべてのプロジェクトが共通の msbuild プロパティとアイテム グループのセットをインポートするようにする傾向があります。これは、各 proj ファイルを編集してインポートを追加する必要があるため、デフォルトでは機能しませんが、1 行だけで、このインポートされた 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 に答える