私のアプリケーションには、ユーザーがアプリケーションをアンインストールしたときに保持する必要がある設定ファイルがあります。コンポーネントを使用してこれを行うことはできますか、カスタムアクションを使用する必要がありますか?WiX:アンインストール時にファイル名を変更しないでください
これは私がこれまでのところ(動作していない)したものである:
<Directory Id="INSTALLLOCATION" Name="_MyApp">
<Component>
<File KeyPath="yes" Source="$(var.Source)\settings.ini" />
</Component>
<Component Id="Backup" Guid="SOME-GUID">
<Condition>REMOVE=ALL</Condition>
<CopyFile Id="settings.ini" Delete="no" SourceProperty="INSTALLLOCATION" DestinationProperty="INSTALLLOCATION" SourceName="settings.ini" DestinationName="settings.ini.bak" />
</Component>
</Directory>
それが問題にした場合、これらのコンポーネントが属する:アクションMoveFilesが後に実行されるため
<Feature Id="Default" Level="1">
<ComponentRef Id="settings.ini" />
<ComponentRef Id="Backup" />
</Feature>
私はこれが動作しないの疑いRemoveFilesを実行してから、移動する余地がないので、インストーラからsettings.iniを削除し、インストール後に手動でコピーしました。私はこの方法を考えていたiniファイルはRemoveFilesの後にまだそこにあり、それは名前が変更されます。さて、iniファイルは実際にそこにありますが、名前は変更されません。どんな考え?
Cosmin、ご返信ありがとうございます。私は「バックアップ」という言葉を誤解しているかもしれません。「そのファイルのコピーを作成する」という意味だけです。私は後でそれを復元するつもりはありません。私は誤解を修正するために投稿を編集しました。ログファイルに関して、私はあなたが提案したことをしましたが、MoveFileでは何も起こりません。多分、コンポーネントの状態は間違っていますか? – Suiden
ええ、私はそれを逃した。条件は、REMOVE = " ALL "である必要があります。それ以外の場合、 "ALL"文字列はプロパティとして扱われます。プロパティを扱うときは、すべての文字列値を引用符で囲む必要があります。 –
ありがとう、これは知っているのは良いことです。残念ながらアンインストールではまだ何もしません。私は、コンポーネントの状態がアンインストール時に評価されるかどうか疑問に思っています...コードが正しいと仮定すると、おそらくそうではありません。 – Suiden