ビルドプロセス中にコード分析と関連する設定を強制することに関して、TFSのテストインストールでいくつかの設定を設定/オーバーライドしようとしています(プロジェクトファイルの設定に関係なく)
現在、TESTTFSインストールで使用しています。
- Visual Studio2012Ultimateを開発者のマシンとビルドサーバーにインストール
- TFS 2012を1台のサーバー(アプリケーションおよびデータ層)にインストールする
- TFS 2012ビルドサービス(コントローラーとエージェント)を別のサーバーにインストールします
サンプルの.net4.5プロジェクト(クラスライブラリ(DLL)、Webアプリケーションなど)を期待どおりにコンパイルできます。これは、関連するコード分析設定をオーバーライドすることだけを目的としています(うまくいけば)。
シナリオ1-プロジェクト設定を選択したときの開発者マシンのサンプルアプリケーション(ソリューションエクスプローラーで右クリック->プロパティ)で、[ビルド時にコード分析を有効にする]をオンにしてルールを選択した場合は、[コード分析]タブに移動しますドロップダウンから設定すると、実行されたとおりに実行されるため、いくつかの警告が生成されます。この技術は<RunCodeAnalysis>false</RunCodeAnalysis>
、メモ帳で開いた場合、*。csprojファイルに追加されます。サンプルプロジェクト/ソリューションをコンパイルするためにビルドが実行されると、コード分析が期待どおりに実行されます。開発者がオフにする可能性があるため、すべてのプロジェクトでこれを実行したくありません(ただし、これを強制するために、チェックインポリシーやプライベート/ゲートチェックインも必要です)。
シナリオ2-[ビルド時にコード分析を有効にする]チェックボックスを無効にして、TFSBuild.projファイルでコード分析を強制できます(TFS 2008からアップグレードするため、プロセス定義としてデフォルトのupgradetemplate.xamlを使用します)。 LIVE TFSのインストール):
<RunCodeAnalysis>Always</RunCodeAnalysis>
これは機能し、これが私たちがビルドでコード分析を強制する方法です(レッスンはまだ学習されていません:-))。
問題は、他の関連するコード分析設定を設定するときに発生します。たとえば、CA警告をエラーとして適用/使用または処理するデフォルトのルールセット。これらの設定の一部は、VSで設定することも、メモ帳で*.csprojを編集することですべて設定することもできます。* .csprojを編集すると、これらの値はビルドで期待どおりに使用されます(開発者のマシンでローカルに使用されます)。すべてのプロジェクトファイルを編集せずにTFSBuild.projで一元的に実行したいので、これは理想的ではありません。TFSbuild.projファイルなどの設定を使用できると思います。
<PropertyGroup>
<RunCodeAnalysis>Always</RunCodeAnalysis>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
しかし、それらは機能していないように見えますか、それとも私はそれらを間違った場所に置いていますか?それらを正しく修正/使用するにはどうすればよいですか?
参考までに、TFSBuild.projでソリューションを構築します。
<Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" />
<ItemGroup>
<SolutionToBuild Include="/some folder/some solution.sln" />
<ConfigurationToBuild Include="Debug|Any CPU">
<FlavorToBuild>Debug</FlavorToBuild>
<PlatformToBuild>Any CPU</PlatformToBuild>
</ConfigurationToBuild>
</ItemGroup>
</Project>
ビルドサーバーで、c:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ CodeAnalysisでコード分析のターゲットファイルへの参照を見つけましたが、ビルドサーバーのデフォルトの動作を変更したくありません(私がそうするときそれは働きますが)。たとえば、CodeAnalysisTreatWarningsAsErrorsの条件は、falseとして評価される必要があります。私の値と同じように、TFSBuild.projからは読み取られませんが、.csprojファイルから読み取られます。
ご不明な点がございましたら、お気軽にお問い合わせください。よろしくお願いいたします。