0

我想让 .msi 在升级时不删除某些文件。我看到我可以添加要删除的文件,但我没有找到任何关于如何对 .msi 说“不要删除它(升级时)”的信息。

有人可以帮我吗?

4

2 回答 2

2

这是一个重大的升级,对吧?这是一个全新的 MSI 文件,包含您需要的所有文件。因此,只需确保它们也在新的 MSI 文件中。这就是每个人所做的。如果您的旧 MSI 包含文件 A、B、C 和 D,并且您希望升级“保留”A、B、C 以便它们不会被删除,请将它们放入升级中。为了安全起见,请确保它们具有相同的组件 ID。我怀疑你对这些事情的工作方式有一些我们不知道的假设。

于 2015-03-27T17:45:33.803 回答
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>
于 2015-04-22T13:35:22.710 回答