「このアセンブリは、現在読み込まれているランタイムよりも新しいランタイムによってビルドされているため、読み込むことができません」というエラーが表示されます。
.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 ファイルを更新しました。
Since only one version of the run-time can be loaded into a process (although, as others have alluded, backwards loading - 4.0 loading 2.0 - is okay), you have a few options:
.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
このエラーは、主にバージョンの不一致で発生します。
このエラーは、IIS で既定として選択されている .NET Framework のバージョンが正しくない場合にも発生する可能性があります。
[接続] ビュー (左側) の下のルート ノードをクリックし、[アクション]ビュー (右側)から[ .NET Framework バージョンの変更] を選択し、ドロップダウン リストから適切な .NET バージョンを選択します。