15

サード パーティのアセンブリに署名して GAC に追加した後、次のエラーが表示されます。アセンブリ バインダーのログ エントリにもこのエラーが表示されます

すべての obj と bin を削除し、バッチでアプリケーションをビルドし、dll を再インポートしたため、ミスマッチがどのように発生したかわかりません。

 Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe

--- A detailed error log follows. 
=== Pre-bind state information ===
LOG: User = AKBARCA\user

LOG: DisplayName = ClubStarterKit.Core, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)

LOG: Appbase = 

file:///C:/Users/user/Desktop/NhibernateMediumTrust/NhibernateMediumUpgrade/direct/clubstar

terkit v3 preview/ClubStarterKit.Web/

LOG: DEVPATH = C:\ProgramData\Red Gate\.NET Reflector\DevPath

LOG: Initial PrivatePath = 

C:\Users\user\Desktop\NhibernateMediumTrust\NhibernateMediumUpgrade\direct\clubstarterkit v3 preview\ClubStarterKit.Web\bin
Calling assembly : ClubStarterKit.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
4

8 に答える 8

31

私の経験から、これは通常、アプリを公開した後、さまざまなバージョンの nuget パッケージを使用しているときに発生します。これがあなたの状況でもある場合、私が見つけた最善の修正方法は、 (個々のプロジェクトではなく)ソリューションを右クリックし、 [Nuget パッケージの管理] を選択することです。次に、インストールされたパッケージで問題のあるアセンブリを見つけます。おそらく、複数回リストされていることがわかります。パッケージの古いバージョンのそれぞれで [管理] をクリックし、すべてのプロジェクトのチェックを外します。パッケージの最新バージョンのみがリストに残ります。これで「管理」をクリックし、パッケージが必要なプロジェクトを再確認します。これにより、基本的にすべてのパッケージが同じバージョンのパッケージを使用するようにアップグレードされ、不一致エラーが解決されます。

于 2013-05-07T19:41:46.773 に答える
3

うーん...同じエラーメッセージで似たようなものに直面しました。

私の場合、アセンブリのバージョンを手動で更新しました。

エラーメッセージ

参照されたアセンブリには、別のバージョンがありました...

それで、web.configで更新しました。

DLL のプロパティ

これで私の問題は解決しました。

あなた=== Pre-bind state information ===は不完全なようです。通常、実行が表示され、最後の行にエラーが表示されるため、経験を共有することしかできません。例: ログ情報の最終行

この問題に直面している他の誰かがこれを参考にしてくれることを願っています。

于 2014-06-11T18:14:05.047 に答える
2

私の場合、<bindingRedirect>依存アセンブリ (Newtonsoft.Json など) の web.config で指定されたバージョンが、実際に bin フォルダーにあるバージョンと一致しない場合にエラーが発生します。web.config のバージョン番号が更新されると、問題は修正されます。

web.config のスクリーンショット

于 2016-08-29T21:44:50.493 に答える
1

別の原因がありました。私の場合、以前にさまざまな nuget パッケージ バージョンを使用していましたapp.configが、何らかの理由でこの種のコンテンツで自動的に生成されたものを持っていました。

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.1.0" />
  </dependentAssembly>

したがって、バージョン 1.1.0.0 しかインストールされていませんでしたが、このリダイレクト命令により、Visual Studio に 1.1.0.0 のナゲットがインストールされていても、1.1.1.0 が検索されました。newVersion を 1.1.0.0 に変更すると、すべてが修正されました。

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.0.0" />
  </dependentAssembly>
于 2017-12-08T07:43:18.253 に答える