2

私は TFS 2010 を手に入れており、継続的インテグレーションの構築を設定することから始めています。この目的のために、 set asDefaultTemplate.xmlで構成されたデフォルトのビルド テンプレート ()を使用しています。Code AnalysisAlways

すべて正常に動作します...そうでない場合を除きます。ビルドでエラー (またはテストの失敗) が発生した場合、TFS レポートで利用できる唯一のエラーは次のとおりです。

コード分​​析出力レポートを読み取れません。ディレクトリが書き込み可能であることを確認してください (デフォルトはプロジェクト出力ディレクトリです)。

元のエラーは、コード分析がない場合にのみ報告されます。エラーがない場合、コード解析レポートは正しく出力されています。

何か案は?

4

3 に答える 3

5

「コード分析出力レポートを読み取れません」エラーについて:

  • Visual Studio でのコンパイル時に発生する場合は、結果のログ ファイル パスが長すぎる(参照)可能性があります。
  • TFS ビルドでのコンパイル時に発生する場合は、プロジェクトに不要な要素<CodeAnalysisLogFile><CodeAnalysisInputAssembly> (Ref)が含まれているためです。

私たちのソリューションでは、すべてのプロジェクトが Common.Targets ファイルをインポートします。これらをオーバーライドして、将来のすべてのプロジェクトで問題を回避するつもりです。

于 2012-06-05T10:18:07.337 に答える
1

私が期待しているのは次のとおりです。

  • コード分​​析オフ、エラーなし: ビルドは問題ありません
  • コード分​​析オフ、ビルド エラー: ワークフローはコード分析ファイルが生成されることを想定していません。元のエラーが表示されます。OK。
  • コード分​​析オン、エラーなし: 分析出力が生成され、すべてうまくいきます。
  • コード分​​析オン、ビルド エラー: ビルド エラーのため、コード分析が実行されず、出力ファイルが生成されません。ただし、ワークフローは出力ファイルを見つけることを期待していますが、それが見つからないため、これがビルド例外に記録される主要なエラーになり、元のファイルが隠されます。

そのため、ビルド テンプレート内のアイテムの順序を調べて、これが適用可能かどうかを確認し、ビルド エラーが発生したときにコード分析の出力が予期されないものになるように変更してください。

于 2011-09-13T19:28:02.467 に答える
0

CIサーバー上でmsbuildを並列(/ mスイッチ)で使用してソリューションを構築しましたが、同じエラーが発生します(他のプロセスによって使用されているため、プロセスがファイルxyzにアクセスできないなどの他のファイルロック固有のエラーも発生します)。結論:安全ではないため、/mを削除してください:-(

于 2012-09-19T14:23:13.207 に答える