我有两个版本的应用程序:
-版本A-安装广告的快捷方式
-版本B-安装非广告的快捷方式
从安装的角度来看,这两个版本都是分开工作的,正确安装了应用程序快捷方式。
如果我从版本A更新到版本B,则会删除桌面和开始菜单快捷方式。
有人遇到过同样的问题吗?可能是什么原因?
更新:
使用ORCA工具,可以查看版本A附带的MSI的属性表,并且在属性表中没有DISABLEADVTSHORTCUTS = 1。
在版本B确实有DISABLEADVTSHORTCUTS = 1。
如果我从版本B msi安装程序文件的属性表中删除DISABLEADVTSHORTCUTS = 1(使用ORCA工具),则从版本A升级到版本B不会删除该快捷方式。
看来,这种差异会导致快捷方式删除错误,但不知道可能是什么原因。
查看安装日志表明您正在进行重大升级。但是,您的RemoveExistingProducts标准操作已排定在InstallFinalize之前。这会造成竞争状况,因为在安装新版本后会发生以前版本的卸载。这是过渡上最有效的技术,但它假设没有违反一堆组件规则。
您需要更早地计划RemoveExistingProducts。看:
从组件的名称和自定义操作中可以看出您正在使用Visual Studio设置和部署项目。该项目被Microsoft吞噬了,我认为它不支持更改RemoveExistingProducts的计划位置。在AFAIK中,只有“ RemovePreviousVersions True | False”,而不是何时删除的设置。
这可能需要修复MSI的后构建漏洞。我不使用此工具的众多原因之一。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句