1

更新中にインストールディレクトリから一部の構成ファイルを削除しないように WiX を構成しようとして最悪の時間を過ごしています。

検索してグーグルで検索しましたが、立ち往生しています...

これが私が持っているものです。

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" ... >
  <Product Id="PRODUCT_GUID" ...
     UpgradeCode="UPGRADE_GUID">
    ...
    <Upgrade Id="$(var.UpgradeCode)">
       <UpgradeVersion OnlyDetect="no" Property="REMOVEOLDVERSION" Maximum="$(var.ProductVersion)" IncludeMaximum="no" />
       <UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="$(var.ProductVersion)" IncludeMinimum="no" />
    </Upgrade>


    <InstallExecuteSequence>
      <RemoveExistingProducts After="InstallFinalize" />
    </InstallExecuteSequence>
    ...

そして、ファイルは次のとおりです。

   <Component Id="ConfigurationFiles" Guid="ConfigurationFiles_GUID" NeverOverwrite="yes">
      <File Id="SomeConf" Source=... />

    </Component>

私は何を間違っていますか?

4

1 に答える 1

4

問題が本当に構成ファイルの削除Permanent="yes"である場合は、代わりに指定するつもりだったと思いますNeverOverwrite="yes"

ただし、構成ファイルが新しいバージョンのインストーラーによってインストールされない場合 (アップグレード後に消えるのはそのためだと思います)、それらは必要ないはずですよね? その場合、なぜ構成ファイルを保持したいのかわかりません。それらを永続的にマークすると、事実上、それらをアンインストールできなくなります。

ユーザーがこれらの構成ファイルに加えた変更を上書きすることを実際に心配している場合は、Windows インストーラーが既にこれを正しく処理していると思います。ファイル バージョニング ルールには、ファイル変更のタイムスタンプに基づく「ユーザー データ」の概念がすでにあり、そのようなファイルは上書きされません。

于 2012-04-24T10:22:03.740 に答える