ITmediaの『あなたのアプリケーションは大丈夫? ~ .NET Framework 2.0上での1.1アプリケーションの動作』で.NET Frameworkのバージョン間の互換性に関する記事が上がっていますが、いまいちわかりやすい文章になっていないようです。
まず、基礎的な事項について整理すると、.NET Frameworkで実装されたアプリケーションの場合、アセンブリに開発時に使用された.NET Frameworkのバージョンを示す情報があります。これにより、デフォルトで使用されるランタイムのバージョンの既定値が得られます。例えば、バージョン 1.1で開発された場合は基本的にはバージョン 1.1のランタイムで実行しようとします。
.NET Frameworkはいわゆるサイドバイサイドで展開できるので、.NET Framework 2.0をインストールしても 1.1がなくなるわけではありません。そのため、1.1と2.0を両方インストールすれば 1.1で開発したアプリケーションは 1.1のもとで実行されます。問題になるのはCOMコンポーネントとして.NET Frameworkのアセンブリが実行された場合で、この場合、依存するアセンブリがどのバージョンなのかは不明のため、現在は 2.0で実行しようとします。もちろん、2.0のランタイムが存在した場合ですが。したがって、2.0の変更で引っかかる場合には問題になります。この場合は、configファイルを展開することで 1.1での実行を強制する必要があります。


コメントする