2009-04-22 90 views
17

バージョン番号にかかわらず、既存のバージョンにインストールする必要があるアプリケーションのインストーラがあります。WiX - 常に以前のバージョンを上書きする

代わりに、私はプログラムを追加/削除する必要があると絶えず言われているインストーラがあります。私のテスターに​​とっては非常にイライラしています。なぜなら、以前のインストーラーパッケージはインストールされていて、以前にあったファイルを削除するだけなので、そのステップを実行する必要はありませんでした。また、私が今インストールしているどのバージョンでも、以前にインストールしたものを上書きする必要があるという点で、同様に訓練された(大規模な)顧客基盤を持っています。

WiXのパラダイムは、パッチインストールのようなバージョンインストールやその他の複雑な作業をブロックするようなものだと私は思いついているようです。私たちの顧客は、率直に言って、パッチを適用したり、マージしたり、どんなことをしても気にするほどスマートではなく、いつも動作するインストーラをほしいと思う(そして私はそれらに同意する傾向があり、帯域幅は安い)。だから私はそれをどうやって得るのですか?

私はこれを試してみたが、それだけでは関係していないよう:

<InstallExecuteSequence> 
    <RemoveExistingProducts Before="InstallInitialize"/> 
</InstallExecuteSequence> 

これはWiXのバージョン3.0.5120です。

EDIT:そこロブの提案を1として、私はこのコードを追加しました:

<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallInitialize"/> 
</InstallExecuteSequence> 

<Upgrade Id="27cb76c7-544e-465f-b1f3-b11d9a49e416"> 
    <UpgradeVersion Minimum="0.8.0" 
        IncludeMinimum="yes" 
        Maximum="1.5.1" 
        Property="OLDERVERSIONBEINGUPGRADED" /> 
</Upgrade> 

私はロールバックのインストールを許可しないようにコードを追加していませんよ。私にとって非常に恥ずかしい理由から、バージョン番号の増加が必ずしもソフトウェアの良さの増加と相関するとは限らないということを言いましょう。私は、誰かが彼らが必要と考えるものから拘束されることを望んでいません。

また、非常に重要なことは、明らかに問題だった別のインストーラを使用して異なるGUIDを作成するために、製品のデフォルトGUIDを「*」に変更することです。

+2

最終的な文章が得られません。製品のデフォルトGUIDを*に設定すると、コンパイルされたすべてのインストーラの新しいGUIDが生成されます。これにより、更新ごとに新しいインストールが並行して行われます。少なくともそれは私が考えたものです。私はまだあなたの問題のための簡単な作業PoCを見つけることを試みている... –

+0

私には、インストールは決して並んでいないようだ。アップグレードコードが一致する限り、古いバージョンはアンインストールされ、新しいバージョンがインストールされます。これはwixから期待される動作ではありませんか? – Shadoninja

答えて

18

メジャーアップグレードが必要です。 WiX.chmの「How To」(ウェブ上でも:http://wix.sourceforge.net/manual-wix3/major_upgrade.htm)に専用のトピックがあります。

+0

おもしろい。だから、もし私がアップグレードのものを欲しがっているのですが、バージョンを取り戻すこともできるようにしたいのですが、私は、より低いバージョンのインストールを許可しないという第二の部分を除いています。 – mmr

+0

@ mmrあなたがやったことを分かち合うことができますか?提供されたリンクは、あなたの質問に完全には答えてくれないようです。 – user145400

関連する問題