.NET 4.0のインプレイスアップグレードである.NET Framework 4.5について、既存アプリのの動作に影響がある変更点とマルチターゲッティングが難しくなることにも関心が集まっている。“.NETのバージョニングとマルチターゲッティング”と題した記事でScott Hanselman氏はこの件を扱っている。
まず、インプレイスアップグレードとサイドバイサイドインストールの違いは何なのか。
サイドバイサイドとは.NETの異なるバージョンがひとつの同じマシンに同居できることです。
インプレイスアップグレードの場合、CLRは同じまま、新しいライブラリやバグ修正、性能改善が反映されます。
.NET Framework 4.5はインプレイスアップグレードであり、.NET 4.0によってインストールされたアセンブリを更新する。そしてこの更新が不安の元になっている。Rick Strahl氏は.NET 4.5は.NET 4.0の置き換えだと題した記事でこの不安を表明している。
氏の説明によれば、
.NET 4.5はサイドバイサイドのCLRとそれほど大きく変わりません。私の考えでは理論的には.NET 5だと思います。
.NET Blogによれば、.NET 4.5をインストールすることで既存アプリケーションの動作がおかしくなる可能性はあるが、そうなることはないとのことです。現在知られている.NET 4.5の既存アプリの動作をおかしくしてしまう変更点は、ほとんどがあまり知られていないものです。私が実際に確認したのは、リフレクションや内部データ構造に依存するアプリケーションの動作がおかしくなることです。内部については、公に取り決められていないので変更されている可能性はあります。
マルチターゲッティングも関心の的だ。.NET Framework 4.5が.NET 4.0のアセンブリを更新してしまうのなら、.NET 4.5をインストールしたマシンで.NET 4.0向けのアプリケーションを開発するにはどうすればいいのか。Scott氏は古い.NET 4.0のアセンブリがC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0にあることを指摘している。
.NET Framework 4.5は現在パブリックベータ板で、Windows 8とVisual Studio 11と共にリリースされる予定。いくつかの新しい機能が追加されており、我々も以前詳細を記事にしている。また、さらに詳しく調べたければMSDNでも確認できる。