5

Autofac と WebAPI 統合を使用するプロジェクトがあります。

ソリューションに対して FxCop を実行し、autofac を開くと、次のようになります。

次の間接参照アセンブリが見つかりませんでした。このアセンブリは解析には必要ありませんが、これがないと解析結果が不完全になる可能性があります。このアセンブルは Autofac.dll によって参照されました

System.Core、バージョン = 2.0.5.0、カルチャ = ニュートラル、PublicKeyToken = 7cec85d7bea7798e、再ターゲット可能 = はい

これにより、CI サーバーで次のエラーが発生します。

FxCop リターン コード (516): PROJECT_LOAD_ERROR ASSEMBLY_REFERENCES_ERROR

これを無視するように FxCop に指示する方法はありますか?

4

4 に答える 4

9

私たちのプロジェクトでは、AutoMapper 3.1.0 で同じ問題が発生しました。本当の問題は、FxCop の古いバージョンです。最後の公式リリースはFxCop 10.0でしたが、2012 年以降、FxCop の新しいバージョンが Visual Studio にバンドルされています。FxCop 10.0 を次のバージョンに置き換えました。

  • C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Static Analysis Tools\FxCop

また

  • C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop

そして問題は解決しました。

于 2013-12-27T10:59:50.987 に答える
3

これは、Portable Class Libraries で実行する場合の一般的な FxCop の問題です。Autofac ではありません。Autofac が使用している唯一の PCL であるため、たまたま表示されるだけです。私の経験では、Windows 8 マシンでビルドしている場合、このエラーは発生しないようですが、Windows 7 または Server 2008R2 ではこれがよく見られます。

これはバグではありません。いいえ、マシンに 2.0.5.0 は見つかりません。そのバージョンは実際には Silverlight 用であり、ランタイム .NET の "もの" は適切なアセンブリ バージョンへのリダイレクトを処理します。残念ながら、FxCop はあまり協力的ではありません。

ビルドで同じことがわかり、次のような質問からの提案を使用して解決しました: FxCop エラー コード 512 を修正するにはどうすればよいですか?

于 2013-03-21T16:23:25.150 に答える
1

You must add a reference to the assembly's directory in the FxCop project file. For instance:

<Targets>
  <AssemblyReferenceDirectories>
   <Directory>C:/Windows/Microsoft.NET/assembly/GAC_MSIL/Microsoft.Web.Infrastructure/v4.0_1.0.0.0__31bf3856ad364e35/</Directory>
   <Directory>C:/Windows/Microsoft.NET/assembly/GAC_MSIL/System.Web.Mvc/v4.0_3.0.0.0__31bf3856ad364e35/</Directory>
  </AssemblyReferenceDirectories> 
于 2013-03-20T15:45:58.443 に答える
1

この問題の回避策は、不足している System.Core.dll をプロジェクトの出力ディレクトリにコピーすることです。System.Core.dll を共有フォルダーから project\bin ディレクトリにコピーするビルド後のイベントとして作成しました。System.Core.dll のコピーは、Silverlight SDK 2 インストールから取得できます。

これで、fxcop は問題なく正常に実行されます。Visual Studio 2010 用の Fxcop インテグレーターを使用していたことに注意してください。

于 2013-10-17T12:26:23.703 に答える