私はインストーラの2つの作業モードがあります。以前のインストールから WIXのインストール中に条件付きでファイルを上書きする方法はありますか?
- 使用の設定ファイルを、代わりに
モードはチェックボックスにによって決定されますが、デフォルトのコンフィグを置きますインストーラのWPF UI。第2のモードが選択されている場合は、のCustomActionを手動でディスクからのconfigsフォルダを削除され、実行されます。
<InstallExecuteSequence>
<Custom Action="RemoveConfigsFolder" After="RemoveFolders" Overridable="yes">NOT Installed AND DELETESETTINGS=1</Custom>
</InstallExecuteSequence>
私はNeverOverwrite属性を使用しています:
<ComponentGroup Id="Configs" Directory="INSTALLDIR" >
<Component Id="Configs" Permanent="yes" NeverOverwrite="yes">
<File Id="main.config" Name="main.config" Source=".\Configs\main.config" KeyPath="yes" />
</Component>
</ComponentGroup>
最初のモードは、この場合には正常に動作し、 2番目のモードを使用しようとすると失敗し、すべての設定が削除され、インストール中に再び作成されることはありません。問題の私の研究の間に
は、私はこれが起こる理由を見つけたと思う:https://community.flexerasoftware.com/showthread.php?96157-The-truth-the-whole-truth-about-quot-Never-overwrite-quot-and-quot-Permanent-quot-files&p=156826#post156826
実はこれは、Windowsインストーラの問題です。 をログに記録すると、インストールの初期段階でインストーラ は、このファイルを含むコンポーネントがインストールされないと判断します。 "上書きしない"とマークされています。機械。アンインストールは、 が既存のファイルを削除した後に発生します。これは、「CostFinalize」アクションが開始されたときにインストーラがこの を決定するためです。このアクションは、 "RemoveFiles"アクションの前に を実行する必要があります。
しかし、どうすれば修正できますか?
これは大きなアップグレード状況ですか、もしそうなら、スケジュールはどこですか? – PhilDW