2

MVC 1 から MVC 3 にアップグレードされたプロジェクトで FxCop を使用しようとしています。初めてプロジェクトを実行したときに、MVC 3 を見つけるように求められました。MVC 1 を見つけるように求められましたが、このマシンに MVC 1 がインストールされておらず、Web サイトが正常に動作しているため、奇妙に感じました。これは私に与えているメッセージです:

FxCop は System.Web.Mvc 1 を望んでいます

Web.config ファイルには、MVC のバージョンをアップグレードすると自動的に作成される次のものが含まれています。

<dependentAssembly>
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

FxCop がこのプロジェクトの分析を完了するように、このエラーを取り除く方法を知っている人はいますか?

4

2 に答える 2

0

FxCop を有効にするための回避策として、FxCop 構成を更新し、次のように設定できます。

<appSettings>
    <add key="AssemblyReferenceResolveMode" value="StrongNameIgnoringVersion" />
</appSettings>

現在、StrongName に設定されている可能性が最も高いです。

許容値は次のとおりです。

なし- 厳密な名前はまったく一致しません。同じファイル名を持つアセンブリはすべて一致すると見なされます。

StrongName - アセンブリ名、バージョン、カルチャ、および公開キー トークンを含む厳密な名前は正確に一致する必要があります。

StrongNameIgnoringVersion - アセンブリ名、カルチャ、および公開キー トークンを含む厳密な名前は正確に一致する必要があります。同等またはそれ以上のバージョンのアセンブリが一致すると見なされます。

ただし、DotPeekなどでアセンブリを調べて、古いバージョンをまだ参照している理由を判断しようとします。

于 2012-11-07T18:11:42.203 に答える
0

FxCop でも同じ問題が発生しました。MVC1 に依存している可能性のある他のアセンブリを確認しましたか? AFAIK MVC1には3つのアセンブリが必要でした:

System.Web.Mvc  
System.Web.Routing  
System.Web.Abstractions  

もしかしたらルーティングやアブストラクションが参照のどこかに残っていませんか?

于 2012-10-09T21:11:48.553 に答える