トップ回答者
.NETFramework4.6でビルドしたアプリケーションが、4.5.2環境で動作する

質問
-
.NET Framework4.6がインストールされていない環境で、.NETFramework4.6 でビルドしたアプリケーションが動作しています。
C#で開発した2つのアプリケーションを、.NETFramework4.6 でビルドし、.NET Framework 4.6がインストールされていない環境で実行してみたところ、一方のアプリケーションはは起動し、もう一方は起動しない(.NET Framework 4.6のインストールを促される)という現象が発生しています。
このような現象が発生する原因をご存知の方や、思い当たることがあることがある方は、情報をいただけると幸いです。
- 編集済み しなしな 2015年9月18日 5:27
回答
-
.NETには基本的に互換性があり、新規に追加されたクラスライブラリを使用していなければ、同一バージョン(v2.0~v3.5やv4.0~v4.6)は動作します。
しかし厄介なことに .NET 4.6 で Array.Empty<T>() が追加されています。空配列を作るメソッドですが、明示的に呼び出していなくてもコンパイラーが勝手にこのメソッドを使ってしまう場合があるそうです。その場合、実行時に.NET 4.6が必要になります。
これが原因とは限りませんが一例として。
すべての返信
-
.NETには基本的に互換性があり、新規に追加されたクラスライブラリを使用していなければ、同一バージョン(v2.0~v3.5やv4.0~v4.6)は動作します。
しかし厄介なことに .NET 4.6 で Array.Empty<T>() が追加されています。空配列を作るメソッドですが、明示的に呼び出していなくてもコンパイラーが勝手にこのメソッドを使ってしまう場合があるそうです。その場合、実行時に.NET 4.6が必要になります。
これが原因とは限りませんが一例として。