.NET Framework の互換性
.NET Framework はリリースされてから、複数のバージョン(1.0、1.1、2.0、3.0)が存在し、過去に開発したWindowsアプリケーションは新しい.NET Frameworkで動作するのか? 新しい.NET Frameworkで開発したWindowsアプリケーションは過去の.NET Frameworkで動作するのか? といった「互換性」を心配される方もいらっしゃると思いますが...
.NET Framework自体は 複数バージョンの混在が可能です。例えば Windows XPでは「C:\WINDOWS\Microsoft.NET\Framework」フォルダに、バージョンごと(例: v1.0.3705、v2.0.50727)の.NET Frameworkが混在しています。また実行環境ではグローバリアセンブリキャッシュと呼ばれる「C:\WINDOWS\assembly」フォルダに多くのライブラリファイル(例: System.Data)が存在し、それぞれのバージョンを参照できます。
VisualStudioで.NET Frameworkを使用してWindowsアプリケーションを開発した場合、基本的には開発(ビルド)した環境と同一の.NET Frameworkバージョンを参照します。(例: .NET Framework 1.1で開発したアプリケーションは、.NET Framework 1.1を参照)
開発環境と実行環境の組み合わせパターンを、下表に示します。
| 開発環境 | 実行環境 | 名称 | 説明 |
| 1.1 | 1.1 | 通常 | 問題なし。 |
| 1.1 | 2.0 | 下位互換 | セキュリティ、不具合修正などのAPI変更に伴う動作不正の可能性があります。 |
| 1.1 | 1.1と2.0混在 | サイドバイサイド | サイドバイサイドが適用されないケースもあります。 |
| 2.0 | 1.1 | 上位互換 | サポートされません。 |
| 2.0 | 1.1と2.0混在 | サイドバイサイド | サイドバイサイドが適用されないケースもあります。 |
| 2.0 | 2.0 | 通常 | 問題なし。 |
| 2.0 | 2.0に3.0追加 | 3.0環境 | サポートされます。 |
| 2.0 | 3.0 | 3.0環境 | サポートされます。 |
| 3.0 | 2.0 | 上位互換 | サポートされません。 |
サイドバイサイドとは、複数のライブラリが混在する環境で、アプリケーションが必要とするライブラリを選択して動作させる方式です。





