Активируйте анализ кода по умолчанию для каждого проекта в Visual Studio 2012

Есть ли способ активировать функцию анализа кода в Visual Studio 2012 по умолчанию для каждого проекта? И, если возможно, установить правила "Все правила Microsoft" по умолчанию.

Каждый раз, когда я создаю новый проект, мне нужно вручную активировать "Включить анализ кода при сборке" в свойствах проекта и установить правила для всех правил. Иногда я забываю это делать и приходится исправлять больше проблем. Я мог бы предотвратить, если бы он был активирован по умолчанию.

1 ответ

Решение

Вы можете отредактировать шаблон проекта по умолчанию, который Visual Studio использует при создании нового проекта, чтобы добавить общий импорт, проблема в том, что когда дело доходит до создания прототипа, хотите ли вы, чтобы эти настройки были включены.

Я стараюсь, чтобы каждый проект импортировал общий набор свойств msbuild и групп элементов. Это не будет работать по умолчанию, так как вам придется редактировать каждый файл proj и добавлять импорт, но преимущество заключается в том, что с помощью одной строки вы можете поместить намного больше, чем просто настройки анализа кода в этот импортированный файл proj, например StyleCop настройки, культура словаря, которую использует Code Analysis, ваш собственный файл набора правил, общий файл 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>
Другие вопросы по тегам