2

ビルド サーバーでコード分析が実行されてエラーが検出される理由を理解しようとしていますが、ローカルでビルドするときに同じエラーが表示されません。失敗するコードの一例を次に示します (STBi の頭字語が原因で)。

string message = string.Format(CultureInfo.CurrentCulture,
    "Unit STBi [{0}] blah... ",
    unitStbiParameter.Stbi);

TFS ビルド サーバーでビルドが失敗し、次のようなエラーが表示されます。

CA2204 : Microsoft.Naming : リテラル '"Unit STBi ["' 内の認識されないトークン 'STBi' のスペルを修正してください。

問題は、ラップトップでソリューションを構築したときに、これらの CA エラーが表示されない理由がわからないことです。これはプロジェクトのプロパティにあります:

ここに画像の説明を入力

そして、ビルド定義にはこれがあります:

ここに画像の説明を入力

ビルド マシンでビルドするとエラーが表示されるのに、ラップトップでは表示されないのはなぜですか? ビルド サーバーが別の CA ルール セットを使用しているようです。それは可能ですか?

補足: STBi を CustomDictionary.xml (以下) に追加しようとしましたが、それでも解決しませんでした。しかし、それは別の問題です。

<!-- This is here because it's a workaround for a bug: http://connect.microsoft.com/VisualStudio/feedback/details/521030/ -->
<DiscreteExceptions>
  <Term>STBi</Term>
</DiscreteExceptions>
4

2 に答える 2

2

おそらくCodeAnalysisCulture、プロジェクトで MSBuild プロパティを指定する必要があります ( http://blogs.msdn.com/b/codeanalysis/archive/2007/08/12/new-for-visual-studio-2008-spelling-を参照)。 rules.aspxなど)。この設定がないと、スペル ルールは、分析が実行されているアカウントの Windows UI カルチャ情報を使用します。これは、おそらくアカウントとビルド アカウントで異なります。

于 2013-10-05T17:02:05.457 に答える
1

ローカルでデバッグをビルドし、ビルド サーバーでリリースしますか? その場合は、CA 設定がデバッグとリリースで同じであること、およびディクショナリがチェックインされ、ビルド サーバーで同じであることを確認してください。

私のチームは、デバッグ ビルドで有効な CA を使用し、ビルド サーバーでCA を無効にしています。コード分​​析チェックイン ポリシーにより、ソース管理内のすべてのコードに対して CA が実行されていることが保証されます。そのため、コード分析パスを繰り返してサーバー ビルドの速度を低下させることに何か意味があるのでしょうか?

于 2013-10-05T19:05:59.433 に答える