我有一个有两个版本的应用程序:
- 版本A - 安装广告快捷方式
- 版本B - 安装未公布的快捷方式
两个版本分别从安装的角度工作,正确安装应用程序快捷方式 如果我从版本A更新到版本B,则会删除桌面和开始菜单快捷方式。
有人遇到过同样的问题吗? 可能是什么原因?
更新:
使用ORCA工具,设法查看随版本A 提供的MSI的属性表,在属性表中没有 DISABLEADVTSHORTCUTS = 1。
版本B确实 DISABLEADVTSHORTCUTS = 1。
如果我从版本B msi安装程序文件的Property表中删除DISABLEADVTSHORTCUTS = 1(使用ORCA工具),则从版本A升级到版本B不会删除快捷方式。
看来,这种差异会导致快捷方式删除错误,但不知道可能是什么原因。
答案 0 :(得分:0)
快捷方式与组件相关联,因此您可能会重新安排组件或其组件以及某些内容。那是我看的地方。关于这些组件及其指南的第一次设置和升级之间究竟有什么不同?
答案 1 :(得分:0)
查看安装日志表明您正在进行重大升级。但是,您的RemoveExistingProducts标准操作将在InstallFinalize之前安排。这会产生竞争条件,因为在安装新版本后会发生先前版本的卸载。这是过渡效率最高的技术,但它假定不违反一堆组件规则。
您需要更早地安排RemoveExistingProducts。参见:
我可以从您使用Visual Studio设置和部署项目的组件名称和自定义操作中分辨出来。该项目因微软而被微软杀死,我认为它不支持更改RemoveExistingProducts的安排位置。 AFAIK只有“RemovePreviousVersions True | False”,而不是何时删除的设置。
这可能需要修复MSI的后构建攻击。我不使用此工具的众多原因之一。