web-dev-qa-db-ja.com

アセンブリのマニフェスト定義がアセンブリ参照と一致しません

MVCプロジェクトのすべてのパッケージを更新したところ、次のエラーが発生しました。

ファイルまたはアセンブリ 'Antlr3.Runtime、Version = 3.5.0.2、Culture = neutral、PublicKeyToken = eb42632606e9261f'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

かみそり(.cshtml)ファイルを開いてプロジェクトをビルドすると、さらにエラーが発生しました

13
gldraphael

これが私がどうやってそれを解決したかです:

ソリューションエクスプローラーに移動し、[参照設定]で[Antlr]を選択し、右クリックして「プロパティ」と言います。ファイルのバージョンがコンパイラが探しているものと同じであることを確認してください。私の場合、MSBuildではバージョン5.5.0.2が必要でしたが、参照プロパティは以前の2.xバージョンを示していました。

私がしなければならなかったすべてはパッケージマネージャーコンソールに行き、タイプすることです:

PM> update-package Antlr

次に、プロジェクトを再度ビルドします。他のアセンブリでも同じエラーが発生する場合は、それらも更新します。あなたの問題は解決されます

33
gldraphael

これは、設定ファイルに不正なバインディングリダイレクトがある場合に発生する可能性があります。これは、所有していないバージョンを指します。

私たちのケースでは、PostSharp 5.0.50 Nugetパッケージを参照しており、次のものが構成ファイルに存在していたため、代わりにPostSharpバージョン5.0.51が検索されていました。

<dependentAssembly>
  <assemblyIdentity name="PostSharp" publicKeyToken="b13fd38b8f9c99d7" culture="neutral"/>
  <bindingRedirect oldVersion="0.0.0.0-5.0.51.0" newVersion="5.0.51.0"/>
</dependentAssembly>

バインディングリダイレクトは不要だったので、削除して修正しました。バインディングリダイレクトのバージョンを、参照したNugetパッケージと同じバージョンに変更することで修正することもできます。

2
Doctor Jones

特定のパッケージを更新するために上記の解決策を試しましたが、成功しませんでしたが、すべてのパッケージの更新は機能しました。 パッケージマネージャコンソール;の使用

update-package -Reinstall

ソリューションの再構築が続きます。

1
Edward Comeau

MVC 5アプリケーションでも同じエラーが発生しました。からすべてを試しました、

  • Antlrパッケージのインストールと再インストール
  • %TEMP%データを削除しています。

Fianllyは、プロジェクトのbinフォルダーからすべてのdllを削除し、プロジェクトを再度ビルドするだけで問題を解決できました。この参照エラーの本当の理由はまだわかりませんが。

1
mukulsharma1146
Update-Package -Reinstall Antlr

私のために働いた...

また、公開する際は"Delete Existing Files"チェックボックスがオンになっています。

0
birwin