Share via


.NET Framework のバージョンの互換性

更新 : 2010 年 8 月

下位互換とは、プラットフォームの特定のバージョンで開発されたアプリケーションが、そのプラットフォームの新しいバージョンでも実行できることを意味します。 .NET Framework では、下位互換性が最大限に高められています。.NET Framework のあるバージョンで記述されたソース コードは、.NET Framework の新しいバージョンでコンパイルでき、.NET Framework のあるバージョンで実行されるバイナリは、新しいバージョンの .NET Framework でも同じように動作します。

アプリケーションのバージョンの互換性

既定では、アプリケーションは、ビルド対象の .NET Framework のバージョンで実行されます。 そのバージョンが存在せず、アプリケーションの構成ファイルにサポートされるバージョンが定義されていない場合は、.NET Framework 初期化エラーが発生することがあります。 この場合、アプリケーションは実行できません。

アプリケーションが実行される特定のバージョンを定義するには、1 つ以上の <supportedRuntime> 要素をアプリケーションの構成ファイルに追加します。 各 <supportedRuntime> 要素は、サポートされるランタイムのバージョンを示します。最初の要素で最も優先度の高いバージョンを、最後の要素で最も優先度の低いバージョンを指定します。

コンポーネントのバージョンの互換性

アプリケーションは、それが実行される .NET Framework を制御できますが、コンポーネントは制御できません。 コンポーネントとクラス ライブラリは特定のアプリケーションのコンテキストで読み込まれるので、アプリケーションが実行されるバージョンの .NET Framework で自動的に実行されます。

この制限のため、互換性の保証は、コンポーネントにとって特に重要です。 .NET Framework Version 4 以降、コンポーネントに System.Runtime.Versioning.ComponentGuaranteesAttribute 属性を適用することにより、複数のバージョンで想定されるコンポーネントの互換性の程度を指定できるようになりました。 ツールは、この属性を使用して、コンポーネントの将来のバージョンでの互換性保証の潜在的な違反を検出できます。

下位互換性と .NET Framework 4

.NET Framework 4 は、.NET Framework の Version 1.1、2.0、3.0、および 3.5 でビルドされたアプリケーションと下位互換性があります。 つまり、旧バージョンの .NET Framework でビルドしたアプリケーションとコンポーネントは、.NET Framework 4 で動作します。

ただし、現実的には、この互換性は、.NET Framework のわずかな変更やプログラミング技法の変化によって損なわれている可能性があります。 たとえば、.NET Framework 4 でのパフォーマンスの向上によって、旧バージョンでは発生しなかった競合条件が顕在化する可能性があります。 同様に、.NET Framework アセンブリへのハードコーディングされたパスの使用、.NET Framework の特定のバージョンでの等値比較の実行、およびリフレクションの使用によるプライベート フィールドの値の取得は、下位互換性のない動作です。 さらに、各バージョンの .NET Framework には、バグの修正とセキュリティに関連する変更が含まれており、これらが一部のアプリケーションとコンポーネントの互換性に影響する可能性があります。

ビルドした .NET Framework アプリケーションとコンポーネントをテストして、それが他のバージョンの .NET Framework と互換性があることを確認してください。 アプリケーションまたはコンポーネントが .NET Framework 4 で問題なく実行されることを確認するには、「.NET Framework Version 4 アプリケーションの互換性に関するチュートリアル」を使用します。

アプリケーションまたはコンポーネントが .NET Framework 4 で期待どおりに動作しない場合は、次のチェック リストを使用してください。

.NET Framework 2.0、3.0、および 3.5 アプリケーションの場合

  • .NET Framework 4 への移行に関する問題 で、アプリケーションに影響する可能性がある変更を確認し、説明されている代替手段を適用します。

  • 既存のソース コードを再コンパイルして .NET Framework 4 で実行する場合、または .NET Framework 4 をターゲットとするアプリケーションまたはコンポーネントの新しいバージョンを既存のソース コード ベースから開発する場合は、「.NET Framework の互換性のために残されている機能」で、互換性のために残されている型とメンバーを確認し、説明されている代替手段を適用します (コンパイル済みのコードは、互換性のために残されている旧式の型とメンバーに対して引き続き実行されます)。

  • .NET Framework 4 での変更によってアプリケーションが正常に実行されないことが明らかになった場合は、「ランタイム設定スキーマ」で、アプリケーションの構成ファイルでランタイム設定を使用することによって前の動作を復元できるかどうかを確認します。

  • 説明されていない問題が発生した場合は、Microsoft Connect にバグを報告し、netfxcf@microsoft.com にバグ番号を連絡してください。

.NET Framework 1.1 アプリケーションの場合

互換性と side-by-side 実行

問題に対する適切な代替手段が見つからない場合は、.NET Framework 4 は Version 1.1、2.0、および 3.5 と side-by-side で実行できることを思い出してください。 適切なバージョンの .NET Framework をターゲット コンピューターにインストールして、アプリケーションを最良の環境で実行できます。 side-by-side 実行の詳細については、「side-by-side 実行」を参照してください。

参照

その他の技術情報

.NET Framework 4 の新機能

.NET Framework の互換性のために残されている機能

Microsoft .NET Framework のサポート ライフサイクル ポリシー

.NET Framework 4 への移行に関する問題

履歴の変更

日付

履歴

理由

2010 年 8 月

.NET Framework のサポートされたバージョンがインストールされていない場合は .NET Framework 初期化エラーが発生することを記載しました。

コンテンツ バグ修正