【发布时间】:2017-10-24 19:43:43
【问题描述】:
我有一个烧录标准引导程序,它链接一个特定的 msi,如下所示
<Chain>
...
<MsiPackage Id="activex32" Cache="yes" SourceFile="$(var.MyPath)\activex32.msi" />
...
</Chain>
此 msi 遵循 MajorUpgrade 策略:每次构建都会更改 PackageCode 和 ProductCode,但通过构建保持 UpgradeCode 不变。
问题是,有些人实际上将这个 msi 安装为独立包。其中一些人还想安装我的引导程序,它是用旧版本的 activex32.msi(较低的内部版本号)编译的。发生这种情况时,引导程序会降级 activex32.msi。
我想知道如何防止这种降级。是的,我可以使用最新的 activex32.msi 更新我的引导程序,但这并不能防止该问题在未来再次发生。
更新: 在我看来,日志并没有说太多
[120C:14C8][2017-10-20T16:49:05]i103:检测到相关包:{1CFD803C-D610-4414-B308-28FDD8326542},范围:PerMachine,版本:8.11.0.19409,语言:0操作:主要升级
[120C:14C8][2017-10-20T16:49:05]i101:检测到的包:activex32,状态:不存在,缓存:无
[120C:14C8][2017-10-20T16:49:07]i201:计划包:activex32,状态:不存在,默认请求:存在,请求:存在,执行:安装,回滚:卸载,缓存:是的,取消缓存:否,依赖项:注册
[0CD8:0C04][2017-10-20T16:49:10]i305:已验证获取的有效负载:activex32 在路径:C:\ProgramData\Package Cache.unverified\activex32,移动到:C:\ProgramData\Package缓存{21C87035-C870-4C06-8978-290D4FD71D33}v8.11.0.18409\activex32.msi.
[0CD8:0C04][2017-10-20T16:49:10]i305:已验证获取的有效负载:activex32 在路径:C:\ProgramData\Package Cache.unverified\activex32,移动到:C:\ProgramData\Package缓存{21C87035-C870-4C06-8978-290D4FD71D33}v8.11.0.18409\activex32.msi.
[0CD8:12F8][2017-10-20T16:49:41]i323:注册包依赖提供者:{21C87035-C870-4C06-8978-290D4FD71D33},版本:8.11.0.18409,包:activex32 [0CD8:12F8][2017-10-20T16:49:41]i301:应用执行包:activex32,操作:安装,路径:C:\ProgramData\Package Cache{21C87035-C870-4C06-8978-290D4FD71D33}v8. 11.0.18409\activex32.msi,参数:'ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7"' [120C:14C8][2017-10-20T16:49:43]i319:应用执行包:activex32,结果:0x0,重启:无 [0CD8:12F8][2017-10-20T16:49:43]i325:注册依赖项:{eb25107d-62c4-49d9-a7c8-0957943ccbdb} 在包提供程序上:{21C87035-C870-4C06-8978-290D4FD71D33},包: activex32
【问题讨论】:
-
Burn 默认情况下不会降级,所以会发生其他事情。日志肯定会说。