これは 2 つの部分からなる質問です。完全な回答を得るには、両方の部分に対処する必要があります。
パートI
.NET 4.5 デスクトップ アプリがあり、アプリの Installshield プロジェクトの "Requirements" 内で、" .NET 4.5 フル パッケージがインストールされています」というメッセージが表示されます。
私はここでそれを読んだ:
.NET 4.5 用にアプリケーションをコンパイルし、それを 4.0 ランタイムで実行できます。これは、4.0 には存在しない新しい機能に到達するまでです。その時点で、アプリは実行時に爆発します。大部分が .NET 4.0 であるが、.NET 4.5 のいくつかの新機能 (aync/await など) のみを含むコードを記述し、アプリケーションの奥深くに埋め込まれて、たまにしか起動しないとします。.NET は喜んでアプリケーションを起動し、4.5 のコードに到達するまで 4.0 のすべてを正常に実行します。その後、実行時に不意にクラッシュします。
したがって、.NET 4.0 を使用する Windows XP でアプリを実行する能力が何に依存しているかを知っています。この質問では、上記の引用で説明したようにアプリがクラッシュしないと仮定しましょう。
パート II
また、.NET 4.5 がインストールされているが .NET 4.0 がインストールされていないマシンにアプリをインストールするときに、「.NET 4.5 フル パッケージがインストールされています」ではなく「.NET 4.0 フル パッケージがインストールされています」を選択すると、どのような影響があるかを知る必要があります。Installshield インストーラーは、インストールされた .NET 4.5 パッケージを .NET 4.0 として認識し、エラーを表示しませんか? それとも、特に.NET 4.0がインストールされていないため、うるさいのでアプリのインストールをブロックしますか?