Sam*_*abu 5 windows-installer wix wix3.5
我们正在使用WiX进行Windows安装.
直到最近,我们才支持主要升级,没有任何问题.
当我们更改产品名称时,我被要求更改快捷方式名称.所以我改变了它.
主要升级后,显示2个快捷方式而不是一个.
美妙的是,当我们安装在同一台机器上迁移的所有功能时,它似乎正确地删除了旧的快捷方式.
但是当我们在(webserver)机器中安装其中一个功能(webserver功能)时,会出现2个快捷方式.
我验证了快捷方式组件也添加在webserver功能中.
<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>
Run Code Online (Sandbox Code Playgroud)
为什么它保持旧的快捷方式(如果单击旧的快捷方式它不起作用)?怎么避免这个?
原因很简单.你没有遵循最佳实践.
更改名称时,必须更改组件guid.
看文档:
测试未显示的任何更改与先前版本的组件兼容.在这种情况下,您还必须更改组件中每个资源的名称或目标位置.
组件中任何文件,注册表项,快捷方式或其他资源的名称或目标位置的更改.在这种情况下,您还必须更改组件中每个资源的名称或目标位置.
从组件添加或删除任何文件,注册表项,快捷方式或其他资源.在这种情况下,您还必须更改组件中每个资源的名称或目标位置.
更新仅重新安装/覆盖文件.源文件和名称取自新的msi.重命名文件/快捷方式时,对旧文件名的引用会丢失.这就是为什么旧链接未被触及而不被安装程序覆盖的原因.
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |