サードパーティのアセンブリに署名してGACに追加すると、次のエラーが表示されます。また、アセンブリバインダーログエントリに このエラー と表示されます
アセンブリの不一致は、すべてのobjとbin foldを削除してバッチを作成し、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.
私の経験から、これは通常、アプリを公開してから、異なるバージョンのnugetパッケージを使用しているときに発生します。これがあなたの状況でもある場合、それを修正するために私が見つけた最良の方法はsolution(個々のプロジェクトではない)を右クリックし、「Nugetパッケージの管理」を選択することです。次に、インストールされているパッケージで問題のアセンブリを見つけます。おそらく複数回表示されるでしょう。パッケージの古いバージョンのそれぞれで[管理]をクリックし、すべてのプロジェクトのチェックを外します。パッケージの最新バージョンのみがリストに残ります。これで[管理]をクリックし、パッケージを必要とするプロジェクトを再確認します。これにより、基本的にすべて同じバージョンのパッケージを使用するようにアップグレードされ、不一致エラーが解決されます。
同様の問題に直面しました。私の場合、ソリューションに複数のプロジェクトがありました。
プロジェクトの1つはEntityFramework 4.0を参照しており、そのプロジェクトはEntityFramework 5.0を参照していた別のプロジェクトで参照されていました。私はそれらを同期させ、問題は解決しました。
ふむ...私は同じエラーメッセージで似たようなものに直面しました。
私の場合、アセンブリのバージョンを手動で更新しました。
参照アセンブリには、別のバージョンがありました...
そのため、web.configで更新しました。
これで問題が解決しました。
きみの === Pre-bind state information ===
は不完全なようです。通常、実行を示し、最後の行はエラーを示します。そのため、経験を共有することしかできません。例:
この問題に直面している他の誰かがこれが役立つことを願っています。
私の場合、エラーはweb.configの<bindingRedirect>
依存アセンブリ(例:Newtonsoft.Json)が、実際にbinフォルダーにあるバージョンと一致しません。 web.configのバージョン番号が更新されると、問題は修正されます。
過去にこの問題が発生したとき、プロジェクトのすべてのdllをgacから削除し、ソリューションを再構築してからiisreset
を実行して解決しました。
私には別の原因がありました。私の場合、以前にさまざまなバージョンのナゲットパッケージを使用していましたが、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のnugetがインストールされていても、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>
FASTjsonを使用してこのエラーが発生しました。
_jsonConfig = fastJSON.JSON.ToObject<jsonConfig>(jsonConfigFileContents);
次の行で失敗しました:
Type t = Type.GetType(typename);
System.RuntimeTypeHandle.GetTypeByNameで例外が発生します
問題は、JSONオブジェクトモデルと比較したJSONファイルの違いでした。
解決策は、JSONオブジェクトモデルをファイルにre-saveすることです。例:
string jsonSettings = fastJSON.JSON.ToJSON(JSONObjectModel);
File.WriteAllText(JSONFilePath, jsonSettings);