私たちは、私たちのルビーベースの製品をインストールするwixでビルドされたMSIを持っています。最初のバージョンをリリースしたときにバグがありました。アップグレードは、ルビ設定ファイル(gemrc)の変更を上書きして、場合によっては製品を効果的に破棄します。WIX、設定ファイルを置き換えない方法
私はアップグレードで設定ファイルを削除したり、置き換えたりしないようMSIに依頼してきました。
は何私が今持っていることは次のとおりです。
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallExecuteAgain" />
</InstallExecuteSequence>
<Directory Id="embeddedDir" Name="embedded">
<Directory Id="embeddedEtcDir" Name="etc">
<Component Id="gemrcComponent" Guid="uuid..." NeverOverwrite='yes' Permanent='yes'>
<File Id='gemrc' Name='gemrc'
Source='$(var.ProjectSourceDir)\embedded\etc\gemrc.default' Vital='yes' KeyPath='yes' />
</Component>
</Directory>
</Directory>
しかし、まったくgemrcでインストールを残す新バージョン(1.1)に現在のバージョン(1.0)から行きます。今後は動作しますので、1.1から1.2に移行すると、既存の(変更された)ファイルが残ります。
古い1.0 MSIを使用して既存のインストールを削除し、そのバージョンに削除する必要がある製品の一部としてマークされたgemrcファイルがあると仮定しています。
これは、カスタムアクションを使用してインストールする前に一時パスにファイルをコピーしてから、それを後で戻す唯一の方法を意味します。 または類似のもの)。より良い/より簡単な方法がありますか?
インストーラと設定ファイルに問題があるため、私たちはプロジェクトで設定ファイルをインストールしないことを決めました。トラブルはそれに値するものではありません。私たちのアプリケーションは既存の設定ファイルを探し、存在しない場合はデフォルトファイルを作成します。 削除の際には、設定ファイルを保存しておいてください。削除しない場合は削除してください。 – linuxrocks