4

別の同様の質問と同様に、ビルド時に 2 つの StyleCop エラーが発生しています。

CA0052: ターゲットが選択されていません。

CA0055: [メイン exe へのパス...] を読み込めませんでした

しかし、他の質問とは異なり、開発マシンのすべてを再フォーマットして再インストールしても問題は解決しませんでした。SP1 を適用した Visual Studio 2010 を実行し、Dotnet 4.0 をターゲットにしています。

ただし、誰かが何が問題なのかを理解するのに役立つ可能性のある別の詳細を次に示します。

また、Visual Studio 2012 RTM でソリューションのビルドを試みたところ、2 番目のエラー メッセージのより詳細なバージョンが表示されました。

CA0055  Error Running Code Analysis 

CA0055 : Could not load C:\Users\UserName\SourceCode\ProjectName\Debug\xxx.exe. 
The following error was encountered while reading module 'System.Windows.Forms': 
Could not resolve type reference: [System.Drawing, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a]System.Drawing.BitmapSuffixInSatelliteAssemblyAttribute.

[Errors and Warnings]

(Global)

手がかりを持っている人はいますか?他の誰もこのエラーを受け取っていないので、間違いなく私のセットアップでは奇妙なことであり、マシンを再舗装したときにうっかり複製してしまいました. しかし...何?

4

1 に答える 1

2

これを修正する 2 つの方法を見つけましたが、Microsoft のドキュメントには何の助けもありませんでした。手がかりは、VS 2012 の追加のエラー報告にありました - StyleCop はSystem.Drawingアセンブリを見つけることができませんでした。

修正 #1: .csproj ファイルからHintPath要素を削除して、 Windows.Formsアセンブリの場所をプロジェクトに伝えます。

<Reference Include="System.Windows.Forms"> 
    <!--<HintPath>..\..\..\..\..\..\..\..\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll</HintPath>-->
</Reference>

修正 #2: System.DrawingインクルードのHintPath要素を.csproj ファイルに追加します。

<Reference Include="System.Drawing">
    <HintPath>..\..\..\..\..\..\..\..\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll</HintPath>
</Reference>

ヒントには特別な理由がないため、最初のオプションの方がうまくいきました。MSBuild は、それがなくてもアセンブリを見つけることができます。これは、ターゲット タイプがフレームワークの 4.0 バージョンに設定されているため、冗長です。

于 2012-08-22T17:40:38.550 に答える