3

重要な内容を省略しておりますので、あらかじめお詫び申し上げます。

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

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

これまでのところ、私は次のことを行いました。

-別のstackoverflowの質問のアドバイスと一致するようにUpgradeVersionタグを編集しました

-「OLDVERSIONBEINGUPGRADED」プロパティが正しく設定されていることを確認しました

-アップグレードコード/IDが同じであり、バージョン番号が連続していることを確認します(1.0.8から1.0.10にアップグレードします)-結局のところ、「通常の」インストールは正しく機能します!

-ここで与えられたアドバイスに従いました:WiX--常に前のバージョンを上書きし、これに従いました:http ://wix.sourceforge.net/manual-wix3/major_upgrade.htm

-msiexecを手動で呼び出して、製品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の初心者なので、問題を説明するときに重要な詳細を見落としている可能性があります。重要なものを含めるのを怠った場合は、お知らせください。

あなたが提供できるどんな入力にも前もって感謝します。

4

1 に答える 1

2

私と同じ制限に直面しているようです。この質問を参照してください。アップグレードでインストール範囲 (「ユーザーごと」または「マシンごと」) を変更することはできません。

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

于 2012-03-14T06:38:04.087 に答える