2011-02-10 32 views
3

.NETアプリケーション(Form/Web)がFramework 2.0で構築されている場合、Framework 4.0のみのコンピュータで動作しますか?.NET Frameworkとバージョンの互換性

たとえば、Windows Server 2003の新しいコピーをインストールし、.NET Frameworkのv4.0でシステムを更新しました(システムには1.0,1.1および4.0の.NETしかありませんでした)が、SQL Server 2008 R2 Expressをインストールするとセットアップはフレームワークのさらに別のv3.5 SP1をインストールするように頼んだ。

答えて

5

はい、2.0アプリケーションは、4.0フレームワークを持つコンピュータで動作します。ドットネット4.0には下位互換性があります。詳細については

このMSDNを見てarticle

MSDNは、しかし、実際には、この 互換性が .NET Frameworkと変更で 一見取るに足らない変化によって破壊することができ

を語りますプログラミング方法は です。たとえば、 .NETの フレームワークのパフォーマンスが向上した場合、 以前のバージョンで発生しなかった競合 の状態が発生する可能性があります。同様に、.NET Frameworkの特定のバージョン と等価比較を行い、 反射を使用して、プライベートフィールドの 値を取得し、.NET Frameworkの アセンブリにハードコードされたパスを使用して下位互換性がありません 練習。また、.NET Frameworkの各バージョン には、 の修正およびセキュリティ関連の変更 が含まれており、一部のアプリケーションとコンポーネントの互換性に影響する可能性があります。

ただし、2.0のアプリケーション設定ファイルでは、supportedruntimeを4.0に設定する必要があります。

+0

.NETでのみ破壊の変更は1.1と2.0の間で行われました。 – Jay

+1

ほとんどありません。唯一の_major_壊れた変更がそこで行われましたが、2.0 - > 4.0は物事を壊す可能性があります。実際にそれがあなたがオプトインする必要がある理由です。 –

4

CLRv4で実行するようにapp.configにエントリを追加する必要があります。

<configuration> 
    <startup> 
     <supportedRuntime version="v2.0.50727" /> 
     <supportedRuntime version="v4.0" /> 
    </startup> 
</configuration> 

(あなたはv2の情報を追加しない場合、それはV4のCLR上のみ実行されます!)

関連する問題