アップグレード時に一部のファイルを削除しないように .msi を作成したい。削除するファイルを追加できることはわかりましたが、.msi に対して「これを削除しないでください (アップグレード時)」と言う方法に関する情報が見つかりません。
誰かがそれを手伝ってくれますか?
アップグレード時に一部のファイルを削除しないように .msi を作成したい。削除するファイルを追加できることはわかりましたが、.msi に対して「これを削除しないでください (アップグレード時)」と言う方法に関する情報が見つかりません。
誰かがそれを手伝ってくれますか?
大幅なアップグレードですよね?これは、必要なすべてのファイルを含むまったく新しい MSI ファイルです。そのため、それらが新しい MSI ファイルにも含まれていることを確認してください。それは誰もがすることです。古い MSI にファイル A、B、C、D が含まれていて、アップグレードで A、B、C を「保持」して削除されないようにしたい場合は、それらをアップグレードに入れます。安全のために、コンポーネント ID が同じであることを確認してください。これらがどのように機能するかについて、私たちが気付いていない仮定をあなたが持っているのではないかと思います。
私はこれを達成することができました。
2 つのカスタム アクションを作成しました。1 つはバックアップを作成するアクション、もう 1 つはバックアップを取得するアクションです。
<CustomAction Id="BackupCurrentUserConfig"
BinaryKey="Utility"
DllEntry="BackupUserConfig"
Execute="firstSequence" />
<CustomAction Id="RetrieveUserConfigFromBackup"
BinaryKey="Utility"
DllEntry="RetrieveUserConfig" />
そして、私はそれらを次のようにスケジュールしました:
<InstallUISequence>
...
<Custom Action="BackupCurrentUserConfig" Before="ExecuteAction"></Custom>
</InstallUISequence>
<InstallExecuteSequence>
...
<Custom Action="VM_RetrieveUserConfigFromBackup" After="InstallFiles"></Custom>
</InstallExecuteSequence>