【解決方法】このアセンブリは、現在読み込まれているランタイムよりも新しいランタイムによってビルドされているため、読み込むことができません。 < でも違う!

[ad_1]

やあ、

解決策のクラス ライブラリ プロジェクトを .NET Framework 4.0 にアップグレードしました。 しかし、アップグレード後、使用しているサーバーが .NET Framework 4.0 をサポートしていないことがわかりました。

そのため、v3.5 に再度ダウングレードする必要がありました。 しかし、これを行った後、アプリケーションを実行できなくなりました。 実行すると、正しくコンパイルされ、ブラウザが起動し、次のエラーが発生します。

Could not load file or assembly 'Xxxxx_DLL' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.BadImageFormatException: Could not load file or assembly 'Xxxxx_DLL' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

アセンブリを使用する Web アプリケーションは .NET Framework 3.5 に設定され、アセンブリ自体も .NET Framework 3.5 に設定されます。 したがって、このエラーはあり得ないはずです。

何か提案はありますか?

解決策 1

問題は、アプリケーションの一部として参照している 1 つ以上のアセンブリにある可能性があります。

VS でプロジェクトに移動し、「参照」ブランチを開き、使用しているすべての参照をメモします。 次に、それぞれを順番に強調表示し、[プロパティ]ペインで[ランタイム バージョン]プロパティを確認します。 少なくとも 1 つは、アプリが想定している 3.5 より大きくなります。

解決策 2

更新された DLL (v4) がまだ別の名前で Bin ディレクトリにあったことが判明しました。 プロジェクト名の名前を変更するのを忘れていました。

解決策 4

コードベースを .Net 3.5 から 4.7 にアップグレードした後、同じ問題に直面しました。
私が行っていた間違いは、IIS アプリケーション プールを、アップグレードされたコードに合わせて統合された 4.0 にアップグレードしなかったことです。

いくつかのこと:-
1. DLL とプロジェクトが同じターゲット ランタイムを指していることを確認します。
2. 解決策のクリーン/再構築
3. アプリ プールがプロジェクト フレームワークに従っていることを確認する

[ad_2]

コメント

タイトルとURLをコピーしました