.NET 2.0 Framework (VS2005) でビルドされた C# DLL ( と呼びましょうmyapp.exe
) があり、.NET 4.0 以降のみがインストールされているマシンではアプリケーションが動作しないことがわかりました。私たちのアプリケーションを .NET 4.0 で動作させるために、myapp.exe.config
この記事「Installing .NET Framework V4.0 and Running .NET 2.0/3.0/3.5/3.5Sp1 Applications」に従って、次の行をいくつか追加しました。
<startup>
<supportedRuntime version="v4.0.30319"/>
</startup>
そしてそれは働いています。
次に、この記事には次のことも記載されていることがわかりました (特に 2 番目の段落)。
ここで、3.5 Service Pack 1 アプリケーションをそのまま V4.0 CLR で実行することはできないことがわかりました。アプリケーションを曲げて V4.0 CLR で実行するには、V2.0 CLR またはタグを使用して再構成する必要があり、その曲げは望ましくない場合があります。
ただし、.NET 4.0 をインストールしても、2.0/3.0/3.5/3.5Sp1 アプリケーションに必要なビットがインストールされないことに気付いていませんでした。V4.0 CLR と V4.0 アセンブリのみがインストールされ、.NET Framework V3.5 Sp1 に相当するものは追加でインストールされません。そのため、.NET 4.0 とともに .NET Framework V3.5 Sp1 を自分でインストールする必要があります。
私のテストでは、.NET 4.0 フレームワーク (4.0 アセンブリ/ライブラリ) を使用して .NET 4.0 で 2.0 C# アプリケーションを実行できることを意味しますが、これは記事の内容と矛盾しています。
それとも、ここで何か不足していますか? 誰かがこれについて明確にできると助かります。マイクロソフトはこれをまったく明確にしていません。