44

Visual Studio2010のMvc3.0.0.0プロジェクトでDotNetOpenAuth(System.Web.Mvcバージョン1.0.0.0を参照)を使用しています。

次のようにアセンブリバインディングリダイレクトを使用しています:-

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

次のエラーが発生するコード分析を除いて、すべて正常に動作します。-

CA0001:モジュールXの読み取り中に次のエラーが発生しました:アセンブリ参照を解決できません:System.Web.Mvc、Version = 1.0.0.0、Culture = neutral、PublicKeyToken=31bf3856ad364e35。

CA0058:参照されているアセンブリ'System.Web.Mvc、Version = 1.0.0.0、Culture = neutral、PublicKeyToken=31bf3856ad364e35'が見つかりませんでした。このアセンブリは分析に必要であり、Xによって参照されました。

コード分​​析ツールにアセンブリバインディングのリダイレクトを尊重させる方法はありますか?

4

4 に答える 4

64

もう少し正確な答えを補足するために:

次のいずれかで FxCopCmd.exe を実行する必要があります。

fxcopcmd.exe /assemblyCompareMode:StrongNameIgnoringVersion

または、次のように、ビルド構成のプロパティ グループごとに Visual Studio プロジェクト ファイルを変更します。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  ...
  <CodeAnalysisAdditionalOptions>/assemblyCompareMode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>
</PropertyGroup>
于 2011-03-30T22:37:33.850 に答える
6

http://davesbox.com/archive/2008/06/10/reference-resolution-changes-in-code-analysis-and-fxcop-part-1.aspxおよびhttp://davesbox.com/archive/2008を参照してください少しの背景情報については、/ 06/14/reference-resolutions-changes-in-code-analysis-and-fxcop-part-2.aspxを参照してください。

VS2010 / FxCop 10.0には、fxcopcmd.exe用の新しい/ assemblyCompareModeコマンドラインスイッチがあり、.configファイルをいじることなく比較モードを指定できます。これは、CodeAnalysisAdditionalOptions MSBuildプロパティを使用して、VSプロジェクトで指定できます。

于 2010-10-28T12:42:25.230 に答える
4

peter_raven ソリューションに加えて、TFS ビルドでコード分析を機能させるオプションを指定できます。これをビルド オプション、プロセス タブ、「MSBuild 引数」の詳細カテゴリに追加します。

/p:CodeAnalysisAdditionalOptions=/assemblyCompareMode:StrongNameIgnoringVersion
于 2013-12-11T11:40:22.833 に答える
1

コード分​​析をオフにする必要がある場合は、これを使用します。

Visual Studio 2012 では、

  1. プロジェクトを右クリックし、ポップアップ メニューから [プロパティ] を選択します。
  2. 「コード分析」タブをクリックし、「ビルド時にコード分析を有効にする」のチェックを外します

クリーンアンドビルド。コード分​​析エラーは解消されるはずです。

于 2014-03-27T12:37:03.890 に答える