我有安装产品的 MSI 安装程序,该产品有几个广泛使用的 API dll。这些 dll 可能会加载到我在升级期间无法控制的进程中(例如,我不能要求用户关闭 explorer.exe 或 svchost)。因此,在 MSI 升级期间,这些 dll 被锁定,并且无法在不重新启动的情况下升级。我需要让它无需重新启动即可升级。这些 API dll 非常稳定,当这些 dll 的新版本将被加载到新运行的进程中时,让旧副本在旧进程中工作是可以接受的。因此,当我们不使用 MSI 时,我们只是使用标准技巧 - 重命名文件,将其标记为在重新启动时删除,写入新文件。
在 MSI 中最好的方法是什么?我应该创建将执行此标准技巧的自定义操作吗?或者也许 MSI 有更好的方法来做到这一点?
谢谢!