VS2008 セットアップ プロジェクトでは、インストール時に常に .NET 3.5 が必要ですが、私には必要ありません。

StackOverflow https://stackoverflow.com/questions/68561

  •  09-06-2019
  •  | 
  •  

質問

1. デフォルトの Windows フォーム プロジェクトを作成してビルドし、プロジェクトのプロパティを確認します。このプロジェクトは .NET Framework 2.0 をターゲットにしていると書かれています。

2. Windows フォーム プロジェクトから 1 つの実行可能ファイルだけをインストールするセットアップ プロジェクトを作成します。

3. インストーラーを実行すると、マシンに .NET 3.5 SP1 をインストールする必要があると常に表示されます。しかし、実際に必要なのは 2.0 だけであることは明らかなので、顧客が必要のないときに .NET 3.5 のインストールを強制されることは望ましくありません。すでに 2.0 がインストールされている可能性があるため、強制的にアップグレードすることは望ましくありません。

セットアップ プロジェクトの前提条件を確認し、.NET Framework 2.0 エントリをチェックしましたが、残りはすべてチェックされていません。したがって、この奇妙な実行時間要件の理由は見つかりません。これを解決する方法を知っている人はいますか?

役に立ちましたか?

解決

ファイルを手動で編集する必要はありません。ヒントは GUID のすぐ上にあります:「LaunchCondition」。

  1. セットアッププロジェクトを右クリックします
  2. 「表示」→「起動条件」を選択します。
  3. 「Launch Conditions」ノードがまだ展開されていない場合は展開します。
  4. 「.NET Framework」ノードを右クリックし、「プロパティウィンドウ」を選択します。
  5. [プロパティ] ウィンドウで、[バージョン] 値を適切な値 (今回の場合は 2.0.50727) に変更します。

なぜこれが最初から適切に設定されていないのかわかりません。

他のヒント

2.0 の展開をターゲットにしている場合でも、一部のアセンブリでは 3.5 が必要になる場合があります。たとえば、LINQ には 3.0 が必要です。ただし、これはビルド時に反映されるはずです。各アセンブリをチェックして、2.0 と互換性があることを確認します。3.5 のものがこっそり入り込むのは望ましくありません。この場合、WPF をサポートするサードパーティ製のコントロール ライブラリが考えられます。

私は最終的に自分自身の質問に対する答えを見つけました。

メモ帳を使用してプロジェクト ファイルを比較すると、VS2008 のセットアップ プロジェクトにはバージョン 3.5 を要求するエントリがあり、VS2005 プロジェクトの同じセクションが 2.0 としてマークされていることがわかりました。奇妙なのは、このセクションが Visual Studio 環境内では手動で変更できないように見えるため、プロジェクト ファイルを手動で更新する必要があることです。ここのどこでも、同じ問題に遭遇した人にとってプロジェクト ファイルの問題となる領域です...

"Deployable"
{
    "CustomAction"
    {
    }
    "DefaultFeature"
    {
    "Name" = "8:DefaultFeature"
    "Title" = "8:"
    "Description" = "8:"
    }
    "ExternalPersistence"
    {
        "LaunchCondition"
        {
            "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_FC497D835F7243569DCCC3E3ACE4196D"
            {
            "Name" = "8:.NET Framework"
            "Message" = "8:[VSDNETMSG]"
            "Version" = "8:3.5.30729"  <--- UPDATE THIS TO 8:2.0.50727
            "AllowLaterVersions" = "11:FALSE"
            "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617"
            }
        }
    }

私はプロジェクトをデプロイするために常に Innosetup を使用してきました。非常に高速で、非常にカスタマイズ可能です。ちょっとしたスクリプト記述でできないことはほとんどありません。Innosetup は、インストールされているフレームワークのバージョンを検出し、正しいバージョンが存在しない場合はユーザーにプロンプ​​トを表示します (スクリプトを使用)。

Innosetup などの代替展開ツールを試して、気に入るかどうかを確認することをお勧めします。そこにはチャンスが豊富にあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top