我们更新了新 MSI 中的一些文件夹,Angular.min
其中Angular.min.1_5_19
包含一个文件Anguar.min.js
。
创建了一个MSP
补丁包以将其交付给客户。ORCA
我们可以观察到应用MSP
over old时目录名的变化MSI
,也观察到更新的登录msimsp.log
文件。
但是MSP
在我的机器上安装后,我们能够在旧文件夹本身中观察到新的 js 文件。新文件夹既不是空的,也不是用新名称替换旧文件夹。
我们更新了新 MSI 中的一些文件夹,Angular.min
其中Angular.min.1_5_19
包含一个文件Anguar.min.js
。
创建了一个MSP
补丁包以将其交付给客户。ORCA
我们可以观察到应用MSP
over old时目录名的变化MSI
,也观察到更新的登录msimsp.log
文件。
但是MSP
在我的机器上安装后,我们能够在旧文件夹本身中观察到新的 js 文件。新文件夹既不是空的,也不是用新名称替换旧文件夹。
Windows Installer 具有组件规则和小升级/补丁可以和不能做的事情以及需要重大升级的事情的概念。还有一个名为MSIENFORCEUPGRADECOMPONENTRULES的有用属性,当您违反这些规则时,它会导致安装程序失败并回滚,而不是看起来完成并完成了您要求的大部分但不是全部。
在这种情况下,您可能通过重新定义组件所属的目录来破坏组件规则。在补丁中执行此操作的方法是:
1) 将旧组件留在原处。将其标记为可传递并给它一个始终评估为假的条件。这允许 MSI 在补丁期间仍然正确跟踪组件并将其删除以及它的旧目录。
2) 为您的新目录创建一个新组件。这允许 MSI 安装新组件及其目录。