「このアセンブリは、現在ロードされているランタイムよりも新しいランタイムによってビルドされているため、ロードできません。」というエラーが表示されます。
.NET 2.0プロジェクトによって呼び出されている.NET 4.0 dllプロジェクトがあります。フレームワークの違いを調整する方法はありますか?
.NET 2.0プロジェクトによって呼び出されている.NET 4.0 dllプロジェクトがあります。フレームワークの違いを調整する方法はありますか?
そうではありません.NET 4 CLRは.NET 2アセンブリをロードできます(通常-混合モードアセンブリ、IIRCにはいくつかの例外があります)が、逆はできません。
.NET 2プロジェクトを.NET 4にアップグレードするか、.NET 4プロジェクトを.NET 3.5(またはそれ以前)にダウングレードする必要があります。
このページで他のすべての論理ソリューションをすでに試している場合は、これを再確認してください。 app.configには、古いフレームワークへの参照がありました。
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
になるはずだった
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
プロジェクトタブにはv4.0が正しく表示されていましたが、app.configはその変更に伴いリポジトリにコミットされませんでした。それを修正するために、フレームワークを別のものに変更し、再び4.0に戻し、app.configファイルを更新しました。
同じエラーメッセージが表示されました。私は与えていた
C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe "C:\ MyService\MyService.exe"
の代わりに
C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe "C:\ MyService\MyService.exe"
プロセスにロードできるランタイムのバージョンは1つだけなので(他の人が示唆しているように、後方ローディング-4.0ローディング2.0-大丈夫です)、いくつかのオプションがあります:
.NET 2プロジェクトを.NET 4にアップグレードするか、.NET 4プロジェクトを.NET 3.5(またはそれ以前)にダウングレードする必要があります。
.netバージョンはどのようにアップグレードしますか?どこで何を指定すればよいかわかりません。助けてください。
編集:自分で答えを見つけました。プロジェクトを選択し、右クリックして[プロパティページ]を選択します。そこで、フレームワークのバージョンを選択できます。またはプロジェクトを選択して、Shift + F4をクリックします
興味深いことに、私はそのエラーを繰り返しました。私にとってそれを修正したのは、gacutil.exeと同じディレクトリにgacutil.exe.configという設定を作成することでした。構成コンテンツ(テキストファイル)は次のとおりです。
<?xml version ="1.0"?> <configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<requiredRuntime safemode="true" imageVersion="v4.0.30319" version="v4.0.30319"/>
</startup> </configuration>
これを参考のためにここに投稿し、実際に何が起こっているのかを誰かが知っているかどうか尋ねます。これが「適切な」方法であると主張していない
INSTALL_UTIL_HOMEディレクトリを"C:\ WINDOWS\Microsoft.NET\Framework\v2.0"から"C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319 "サービスのインストール用。このエラーは主にバージョンの不一致で発生します。
私もこのエラーを受け取りましたが、問題は古いバージョンのGACUTIL.EXE
を使用していたことです。
最新の.NET
バージョンの正しいGACUTIL
をインストールすると、正常に機能しました。
このエラーは誤解を招くものです。なぜなら、間違ったものを登録しようとしているDLLのように見えるからです。
このエラーは、IISでデフォルトとして間違った.NETフレームワークバージョンが選択されていることによってもトリガーされる場合があります。
接続ビュー(左側)の下のルートノードをクリックし、アクションビューから。NET Frameworkバージョンの変更を選択します(右側)で、ドロップダウンリストから適切な.NETバージョンを選択します。
Dllの.netバージョンが一致しないため、app.configまたはweb.configでからに変更してみてください。一般に、より低いフレームワークよりも高いフレームワークがあります。システムのdllを下位バージョンのビルドされた.netアプリケーションに追加すると動作しないため、上位バージョンに変更するだけです。
このエラーは、IISでアプリケーションプールを構成した方法が原因でした。
私のWebサービスは、v2.0.50727用に構成されたアプリケーションツールを使用しています。その結果、エラーメッセージが表示されました。
V4.0.30319に変更しても、エラーは発生しませんでした。
特定のプロジェクトがホストされているアプリケーションプールの.Net frame workバージョンを変更すると、この特定の問題を解決できました。
アプリプール->詳細設定-> .Netフレームワークバージョン(v2.0からv4.0に変更)