11

私は .NET 2.0 アプリケーションを持っており、ユーザーの PC で利用可能な .NET バージョンをチェックし、特定のポートをインストールする「スマート インストーラー」を作成する予定です。私はそれを観た:

  • Windows XP (SP2) には .NET 2.0 が付属しています
  • Windows Vista には .NET 3.0 が付属しています
  • Windows 7 には .NET 3.5 が付属しています
  • Windows 8 には .NET 4.5 が付属しています

私の知る限り、下位互換性がないのは、.NET 4.0 以降に変更された CLR バージョンだけです。

したがって、ユーザーが自分のアプリケーションのためだけに追加のフレームワークをインストールすることを望まない場合は、次のバージョンのアプリを用意する必要があります。

  • .NET 2.0 - XP (SP2 以降)、Vista (3.0 は 2.0 を実行できるはず) および 7 (3.5 は 2.0 を実行できるはず)
  • .NET 4.0 - 誰かが 4.0 のみをインストールし、他に何もインストールしていない場合
  • .NET 4.5 - 他の .NET がインストールされていない Windows 8 を使用しているユーザー向け

私は正しいですか?または、4.5/4.0 は下位互換性がありますか?

編集:上位データのいずれかが正しくない場合は、修正してください

4

2 に答える 2

11

私の知る限り、下位互換性がないのは、.NET 4.0 以降に変更された CLR バージョンだけです。

これは真実ではありません。.NET2 でコンパイルされたアプリケーションを .NET4 フレームワークで実行できます。

app.config に以下を追加するだけです。

<configuration>
<startup>
    <supportedRuntime version="v2.0.50727"/>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

注、@KingKronusに同意します。つまりWhy not just pick the lowest common denominator?

あなたの場合、それは.NET2でコンパイルされ、1セットのpdbと1つのコンパイルセットのみです。

はい、.NET2 でコンパイルされたアプリが .net4 ランタイムで問題なく動作することをテストする必要がありますが、元のソリューションの各フレームワークでアプリをテストする必要があります。

于 2012-12-17T14:09:06.067 に答える
0
  1. 実際、手動で確認する必要はありません。アプリケーションを実行すると、適切なメッセージが表示され、ユーザーに必要なバージョンをダウンロードしてインストールするように求められます。

  2. それでも Windows XP をサポートする必要がある場合は、.NET 4.0 を選択してください。.NET 4.5 で処理されます

于 2012-12-17T13:59:57.920 に答える