强制 .msi 跳过删除某些文件
Force .msi to skip deletion of some files
我想让.msi升级时不删除一些文件。我看到我可以添加要删除的文件,但我没有找到关于如何对 .msi "Don't delete this (when upgrading)".
说的任何信息
有人可以帮我吗?
这是一次重大升级,对吧?这是一个全新的 MSI 文件,其中包含您需要的所有文件。所以只需确保它们也在新的 MSI 文件中。每个人都这样做。如果您的旧 MSI 包含文件 A、B、C 和 D,并且您希望升级到 "keep" A、B、C 以便它们不被删除,请将它们放入升级中。为了安全起见,请确保它们具有相同的组件 ID。我怀疑您对这些事情的工作方式有一些我们不知道的假设。
我做到了。
我创建了两个自定义操作:一个用于备份,一个用于检索备份。
<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>
我想让.msi升级时不删除一些文件。我看到我可以添加要删除的文件,但我没有找到关于如何对 .msi "Don't delete this (when upgrading)".
说的任何信息有人可以帮我吗?
这是一次重大升级,对吧?这是一个全新的 MSI 文件,其中包含您需要的所有文件。所以只需确保它们也在新的 MSI 文件中。每个人都这样做。如果您的旧 MSI 包含文件 A、B、C 和 D,并且您希望升级到 "keep" A、B、C 以便它们不被删除,请将它们放入升级中。为了安全起见,请确保它们具有相同的组件 ID。我怀疑您对这些事情的工作方式有一些我们不知道的假设。
我做到了。
我创建了两个自定义操作:一个用于备份,一个用于检索备份。
<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>