4

.NET 3.5 でコンパイルされたアセンブリがあります。まだ.NET 3.5を実行している他のアプリケーションで使用されているため、.NET 4.5で再コンパイルできません。.NET 4.5 を実行しているアプリでアセンブリを使用すると、アセンブリは .NET 3.5 ではなく .NET 4.5 で実行されているかのように扱われますか? .NET 4.5 に WinForms アプリと WebForms アプリの両方があります。.NET 3.5 と .NET 4.5 の間で動作に変更がある場合、アセンブリは 4.5 の結果を返しますか?

4

1 に答える 1

5

通常、.Net フレームワークは下位互換性があるため、.Net 3.5 で開発されたアセンブリを実行しても、4.5 では問題になりません。

次が表示されます: .NET Framework でのバージョンの互換性

.NET Framework 4.5 は、.NET Framework バージョン 1.1、2.0、3.0、3.5、および 4 で構築されたアプリケーションと下位互換性があります。つまり、以前のバージョンの .NET Framework で構築されたアプリケーションとコンポーネントは、 .NET Framework 4.5。

ただし、記事で言及されているような問題もある可能性があります。

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

最善の方法は、3.5 から dll をインクルードした後にテスト ケースがパスすることを確認することです。

于 2013-05-04T15:58:11.850 に答える