2016-07-06 16 views
1

WIXツールセット(3.10)を使用してインストーラを作成しました。私はアップグレードを有効にしたいですが、私はそれを動作させることはできません。 msiを実行するたびに、別のバージョンがインストールされます。 何が間違っているのか分かりません。誰も助言することができますか?私はUpgradeCodeためにGUIDを使用WIXを使用したバージョンアップ

<Product Id="*" 
     Name="$(var.PRODUCTNAME)" 
     Language="1033" 
     Version="$(var.PRODUCTVERSION)" 
     Manufacturer="Manufacturer" 
     UpgradeCode="UPGRADE_CODE" 
     > 
<Package InstallerVersion="200" 
     Compressed="yes" 
     InstallScope="perMachine" /> 

<MajorUpgrade Schedule="afterInstallInitialize" 
       AllowDowngrades="no" 
       AllowSameVersionUpgrades="no" 
       DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
<MediaTemplate EmbedCab="yes" /> 

答えて

0

AllowSameVersionUpgradesは= "yes" を、おそらくこの問題を解決します、Microsoftのドキュメントを参照してくださいすることができます。アップグレードをテストするときは、インストーラ間で常にバージョン(最初の3つのうちの1つ)を更新するか、同じバージョンのアップグレードを許可する必要があります。 wix website

から

同じバージョンの製品をインストールする(デフォルト)noに設定し、コード(しかし、異なる製品コード)をアップグレード二つの製品として許可およびMSIによって処理されます。 yesに設定すると、WiXはmsidbUpgradeAttributesVersionMaxInclusive属性を設定します。この属性は、メジャーアップグレードと同じバージョンの製品を扱うようにMSIに指示します。

だからあなたのインストールは、彼らはあなたがプログラムの一覧を削除するアドインで2つのコピーを取得する理由で同じアップグレードコードを共有するにもかかわらず、これらの二つのインストールは別々のものです考えています。

0

(私はそれがUPGRADE_CODEが何を意味するのかだと仮定)。

REINSTALLMODEプロパティを設定して、再インストールの動作を変更することもできます。

それは次のようになります。

<SetProperty Id="REINSTALLMODE" Value="amus" After="FindRelatedProducts">Installed AND REMOVE&lt;&gt;"ALL"</SetProperty> 

ちょうどaは関係なく、インストールされたバージョンの製品を再インストールすることに注意してください。しかし、あなたはあなたのインストーラに必要な文字を調べることができます。

Value="amus"のためには、here

+0

回答ありがとうございますが、それでも動作しません。他のアイデア? – Lipo

+0

「それは別のバージョンをインストールする」ということはどういう意味ですか? 「プログラムと機能」に2つの異なるエントリがありますか、それともバージョン番号が変わっていますか? –

+0

「プログラムと機能」の2つの異なるエントリ – Lipo

0

MajorUpgradeプロパティに加えて、UpgradeCodeは今後のバージョンでは変更されません。それが問題になるかもしれませんか?

関連する問題