WIX 'Advanced'インストールで以前のバージョンをアンインストールしない

StackOverflow https://stackoverflow.com//questions/9694579

質問

私が重要な詳細を省略した場合は、事前にお詫び申し上げます。

新しいバージョンのソフトウェア(およびすべてのコンポーネント)をインストールする前に、アップグレードを実行しようとしています。

詳細を詳細に退屈させないようにして、「典型的な」インストールを行う場合は、すべてが計画通りになります。高度なインストールを実行することを選択した場合(すべてのユーザーのインストール、場所のインストールなど)から、「アンインストール以前のバージョン」のステップを完全にスキップするようです。

これまでのところ、私は次のことをしました:

experated uppradeversionタグ別のスタックオーバーフローのアドバイスに一致する

-verified 'oldVersionBeingUpgraded'プロパティは正しく設定されています

アップグレードコード/ IDが同じであること、バージョン番号はシーケンシャル(1.0.8から1.0.10へのアップグレード) - 結局のところ、「典型的な」インストールは正しく機能します。

- ここでのアドバイスを見つけました。常に前のバージョンを上書きしますとこれに従った: http://wix.sourceforge.net/manual-wix3/ MAIGUR_UPGRADE.HTM

手動でMSIEXECを呼び出すことでハックを実装するには、Product IDで前のバージョンをアンインストールして前のバージョンをアンインストールします(これはすでにインストールされているために失敗しました - これはこれをスケジュールするためのより良い方法がありますか?)

マイ商品/アップグレードセクションは次のようになります。

<Product Id="GUID1" UpgradeCode="GUID2" Version="1.0.10.0">
    <Package Compressed="yes" InstallerVersion="200"/>
    <MajorUpgrade Schedule="afterInstallInitialize" 
      DowngradeErrorMessage="Another version of [ProductName] is already installed."/>
    <Upgrade Id="GUID2">
        <UpgradeVersion Minimum="1.0.10" OnlyDetect="yes"
             Property="NEWERVERSIONDETECTED" />
        <UpgradeVersion Maximum="1.0.10" IncludeMaximum="no" 
             Property="PREVIOUSVERSIONINSTALLED" />
    </Upgrade>
.

私はWix Newbieだから、私は問題を説明しながら重要な詳細を見逃しているかもしれません。私が何かを含めるために無視されたならば、私に知らせてください。

あなたが提供することができるどんな入力でも事前にありがとうございました。

役に立ちましたか?

解決

あなたが私がやったのと同じ制限を実行しているように聞こえます、この質問。アップグレードでインストールスコープ(「ユーザーごと」または「マシンごと」)を変更することはできません。

これはWindowsインストーラ内からの簡単な方法はありません。前のバージョンをアンインストールしてから新しいバージョンのインストールを開始する別のブートストラップexeを作成できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top