Активируйте анализ кода по умолчанию для каждого проекта в 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>