泥庭

2010年10月4日

TFSでコード分析を有効にするとビルドに失敗する

Filed under: 開発環境 — タグ: , — yone64 @ 6:56 AM

TFSでなぜだかコード分析が出来ないという状態に陥りました。コード分析を行うと必ずビルドエラーとなります。
image

ログを確認したところ赤太字にした箇所が原因っぽい。

  C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe  /outputCulture:1041 /out:”bin\Debug\ConsoleApplication9.exe.CodeAnalysisLog.xml” /file:”C:\Builds\2\CodeTest\ConsoleApplication9\Binaries\ConsoleApplication9.exe” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\Microsoft.CSharp.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\mscorlib.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Core.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Data.DataSetExtensions.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Data.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Xml.dll” /reference:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Xml.Linq.dll” /directory:”C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client” /ruleSet:”=MinimumRecommendedRules.ruleset” /rulesetdirectory:”C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets” /rule:”-C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules” /searchgac /ignoreinvalidtargets /forceoutput /successfile /ignoregeneratedcode /saveMessagesToReport:Active /timeout:120
  出力ファイルを開けませんでした: パス ‘C:\Builds\2\CodeTest\ConsoleApplication9\Sources\ConsoleApplication9\bin\Debug\ConsoleApplication9.exe.CodeAnalysisLog.xml’ の一部が見つかりませんでした。。
MSBUILD : error : コード分析出力レポートを読み取れません。ディレクトリが書き込み可能であることを確認してください (既定はプロジェクト出力ディレクトリです)。 [C:\Builds\2\CodeTest\ConsoleApplication9\Sources\ConsoleApplication9\ConsoleApplication9.csproj]
  コード分析が完了しました — エラー 1、警告 0

TFS上での作業にもかかわらず、bin\Debug上にログファイルを出力しようとしているようです。
そして、さらなる追跡調査の結果、プロジェクトファイルにCodeAnalysisLogFileが設定してあり、そこで、bin\Debugが記述されていることが判明しました。

<PropertyGroup Condition=”‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU'”>
  <DebugSymbols>true</DebugSymbols>
  <OutputPath>bin\Debug\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <DebugType>full</DebugType>
  <PlatformTarget>AnyCPU</PlatformTarget>
  <CodeAnalysisLogFile>bin\Debug\ConsoleApplication9.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
  <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
  <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
  <ErrorReport>prompt</ErrorReport>
  <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
  <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
  <CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
  <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
  <CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
  <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
</PropertyGroup>

その後、いろいろ試行錯誤していると、ソリューションプラットフォームのコピー時にCodeAnalysis関連の設定がプロジェクトファイルに書き込まれることを突き止めました。
かなりバグチックな動作。というわけで、初めてフィードバックをしてみました。フィードバックの書き方が難しい。
https://connect.microsoft.com/VisualStudioJapan/feedback/details/610160/

広告

1件のコメント »

  1. […] 昔、ここでもかきました。SPなしだと、こんな感じでした。 コピー元に対して […]

    ピンバック by Visual Studio 2010 SP1であのバグは直ったのか? « 泥庭 — 2011年4月2日 @ 8:39 PM


RSS feed for comments on this post. TrackBack URI

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

WordPress.com Blog.

%d人のブロガーが「いいね」をつけました。