我们正在使用WiX进行Windows安装。
直到最近,我们一直在支持没有任何问题的重大升级。
当我们更改产品名称时,要求我更改快捷方式名称。所以我改变了。
重大升级后,将显示2个快捷方式,而不是一个。
美丽之处在于,当我们在同一台计算机上安装所有迁移的功能时,它似乎正确地删除了旧的快捷方式。
但是,当我们在(webserver)机器中安装其中一项功能(webserver feature)时,会出现2个快捷方式。
我验证了Web服务器功能中也添加了快捷方式组件。
<DirectoryRef Id="ProgramMenu.OrganizationName.MyProj">
<Component Id="CoreInterface_Shortcuts" Guid="3e3c3733-9b53-42cf-a641-b5b3e3da88cf">
<Shortcut Id="MyOrgMESUrl" Name="Home" Description="MyOrg Intuition URL" Target="[INSTALLDIR]MyOrg MES.url" WorkingDirectory="INSTALLDIR"/>
<RemoveFolder Id="RemProgramMenu.MyOrg" Directory="ProgramMenu.MyOrg" On="uninstall"/>
<RemoveFolder Id="RemProgramMenu.MyOrg.MyProj" Directory="ProgramMenu.MyOrg.MyProj" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\MyOrg\MyProj" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
<Feature Id="WEBSERVER" Title="WEBSERVER Customized Component(s)" Level="1">
<ComponentRef Id="CoreInterface_Shortcuts"/>
</Feature>
为什么它会保留旧的快捷方式(如果单击旧的快捷方式,它将无法正常工作)?如何避免这种情况?
最佳答案
原因很简单。
您没有遵循最佳做法。
更改名称时,必须更改组件guid。
请参阅文档:
Changing the Component Code (Windows)
更新仅重新安装/覆盖文件。源文件和名称取自新的msi。重命名文件/快捷方式时,对旧文件名的引用会丢失。
这就是未更改旧链接且安装程序未覆盖旧链接的原因。
关于wix - 为什么在主要升级(迁移)后有两个快捷方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14773233/