12

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

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

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

セットアップ プロジェクトの前提条件を確認し、.NET Framework 2.0 エントリを確認しましたが、残りはすべてオフになっています。したがって、この奇妙なランタイム要件の理由を見つけることができません。これを解決する方法を知っている人はいますか?

4

4 に答える 4

22

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

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

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

于 2008-09-16T10:56:09.367 に答える
1

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

于 2008-09-16T01:35:19.073 に答える
1

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

メモ帳を使用してプロジェクト ファイルを比較すると、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"
            }
        }
    }
于 2008-09-16T10:26:09.190 に答える
0

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

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

于 2008-12-28T03:56:25.440 に答える