2012-02-27 18 views
0

古いインストーラを検出した場合は、インストーラをアンインストールしてから、新しいインストーラを起動します。Wix - アップグレードで古いインストールがインストールされ、新しいものがインストールされる

は、私は次のウィックスXMLました:

<Product Id="16bf910b-3b0f-4240-914a-81526bce35f4" 
     Name="MyProduct" 
     Language="1033" 
     Version="1.0.0.0" 
     Manufacturer="MyCompany" 
     UpgradeCode="6ba28d97-41de-4371-a236-b757b7840f7b"> 
<Package InstallerVersion="200" Compressed="yes" /> 

<Upgrade Id="6ba28d97-41de-4371-a236-b757b7840f7b"> 
    <UpgradeVersion Minimum="0.0.0.0" 
        IncludeMinimum="yes" 
        OnlyDetect="no" 
        Maximum="1.0.0.0" 
        IncludeMaximum="yes" 
        Property="PREVIOUSFOUND" /> 
</Upgrade> 
<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallValidate"/> 
</InstallExecuteSequence> 

MSIファイルを生成し、それをインストール(バージョン1.0.0.0)を、それは大丈夫です。 Product/@Versionを1.0.1.0に変更し、MSIをもう一度クリックします。この時点で、私はメッセージが表示されます。「この製品の以前のインストールがあります。まずは削除してください...」

この動作を変更するにはどうすればよいですか? ありがとう

答えて

4

Product @ Idは、WindowsインストーラのProductCodeプロパティに対応しています。メジャーアップグレードになるためには、このIDはビルドからビルドに変更する必要があります。コンパイラがこれを処理できるようにするには "*"に設定します。

+0

これを行うと、以前のインストールがアンインストールされ、正しくインストールされるか、既存のファイルが上書きされますか? (それは働いて、ありがとう)。 –

+0

これは、コンポーネントルールとデフォルトのファイルバージョンルールの理解を必要とする複雑な質問です。一般的にははいですが、YMMVはこれらのルールに基づいています。 –

+1

私はWixのバージョンを3.5に更新し、 'MajorUpgrade'タグでこれを自動的に更新しました。ありがとう:) –

関連する問題