12

WiX インストーラーでインストールするプログラムがあります。

プログラム自体が [CommonAppDataFolder]\[MyAppName]\ ディレクトリに多数のファイルを作成します。これらのファイルの拡張子はすべて同じです (.dat と呼びましょう)。

のアップグレード時に、これらのファイルを保持したいと考えています。をアンインストール
する際に、 これらのファイルを削除したいと考えています。

現在、次のようにファイルを削除しています。

<Directory Id='CommonAppDataFolder'>
  <Directory Id='MyCommonAppDataFolder' Name='MyAppName'>
    <Component Id='RemoveFilesComponent' Guid='71cb0cd8-8459-4a8f-89b7-f00977aa7b70'>
      <RemoveFile Id='RemoveFiles' Name='*.dat' On='uninstall'/>
    </Component>
  </Directory>
</Directory>

そして、アップグレードを容易にするためにこれを持っています:

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

アンインストールすると、.dat ファイルが正しく削除されるようになりました。
ただし、アップグレードすると、.dat ファイルも削除されます。アップグレードが以前のバージョンでアンインストールを実行しているためだと思います。

この問題に正しく取り組んでいますか? アップグレード時にファイルを保持し、アンインストール時にファイルを削除するにはどうすればよいですか?

4

2 に答える 2

2

RemoveExistingProducts に条件を追加しようとしましたか? これが私がすることです。

<RemoveExistingProducts After='InstallInitialize'>(NOT UPGRADINGPRODUCTCODE) AND (Installed)</RemoveExistingProducts>
于 2010-07-21T19:35:45.993 に答える
1

1 つのオプションは、マイナー アップデートに切り替えることです。これには多くの制限があるため、思ったほど簡単ではありません。

于 2010-07-20T15:34:23.763 に答える