2

私はTFS 2010を手に入れていますが、継続的な統合構築を開始しようとしています。この目的のために、Code AnalysisAlwaysと設定されているデフォルトのビルドテンプレート(DefaultTemplate.xml)を使用しています。コード解析がTFS2010に設定されているときにコンパイルエラーが表示されない

すべて正常に動作します...そうでない場合を除きます。ビルド(またはテストの失敗)におけるエラー、TFSレポートで利用可能な唯一のエラーがある場合に何コード解析が存在しない場合にのみ、次の

Unable to read Code Analysis output report. Make sure that the directory is writable (default is the project output directory).

元のエラーが報告されています。エラーがなければ、コード分析レポートが正しく出力されます。

アイデア?私は何を期待

答えて

1

は以下の通りです:

  • コード解析をオフ、エラーなし:ビルドエラーを構築し、コード分析オフ
  • 結構です:ワークフローは、コード解析ファイルが生成されることを期待していない、オリジナルエラーが表示されたら、OKをクリックします。
  • コード分析オン、エラーなし:分析出力が生成され、すべて正常に機能します。
  • ビルドエラーのコード解析:ビルドエラーにより、コード解析が実行されず、出力ファイルは生成されません。ただし、ワークフローでは見つからない出力ファイルが見つかることが予想され、これがビルド例外に記録された主なエラーになり、元のファイルが隠されます。

ビルドテンプレートの項目の順序を調べて、該当するかどうか確認し、ビルドエラーが発生したときにコード解析の出力が期待されないように変更してください。 「コード分析出力レポートを読み取ることができません」というエラーについて

+0

実際にコード解析が誤って変更され、すべてのケースでエラーが報告されました:-(ただし、上記の問題がある場合、答えは正しいようです:-) – Mac

5

  • のVisual Studioでコンパイルするときに問題が発生した場合、それが結果として生成されるログファイルのパスが(Ref)長すぎることが考えられます。
  • TFSビルドでコンパイルすると、プロジェクトに不必要な要素が含まれているためです。<CodeAnalysisLogFile><CodeAnalysisInputAssembly>(Ref)

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

+0

CodeAnalysisLogFileがbin/Debugを指していたのに対し、プロジェクト出力はbin/x86/Debugに向けられていましたが、ビルド中にbin/x86/Debugのみが作成され、Code Analysisログファイルに必要なbin/Debugは作成されませんでした。 – Christian

0

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

関連する問題