2008-09-16 1 views
11

1、既定のWindowsフォームプロジェクトを作成してビルドし、プロジェクトのプロパティを確認します。このプロジェクトは.NET Framework 2.0を対象としているとのことです。VS2008セットアッププロジェクトでは、インストール時に常に.NET 3.5が必要ですが、私はそれを必要としません!

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

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

私は、セットアッププロジェクトの前提条件を見て、.NET Framework 2.0のエントリをチェックし、残りはすべてチェックされていません。だから私はこの奇妙な実行時の要件の理由を見つけることができません。誰もこの問題を解決する方法を知っていますか?

答えて

21

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

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

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

1

2.0デプロイメントを対象としている場合でも、アセンブリの一部に3.5が必要な場合があります。たとえば、LINQには3.0が必要です。ただし、これはビルド時に反映されるはずです。各アセンブリが2.0互換であることを確認してください。あなたは3.5のものが忍び寄るのを望んでいません。これが当てはまる場合、私の推測はWPFをサポートするサードパーティコントロールライブラリになります。

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" 
      } 
     } 
    } 
0

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

Innosetupのような別のデプロイメントツールを試してみることをお勧めします。そこには豊富な機会があります。

関連する問題