【问题标题】:why two shortcuts after Major upgrade (migration)?为什么重大升级(迁移)后有两个快捷方式?
【发布时间】:2013-01-24 06:11:36
【问题描述】:

我们正在使用 WiX 进行 Windows 安装。

直到最近,我们一直在支持重大升级,没有任何问题。

当我们更改产品名称时,我被要求更改快捷方式名称。所以我改了。

重大升级后,将显示 2 个快捷方式而不是 1 个。

美妙的是,当我们在同一台机器上安装迁移的所有功能时,它似乎正确地删除了旧的快捷方式。

但是当我们在 (webserver) 机器上安装其中一项功能 (webserver feature ) 时,会出现 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>

为什么它保留旧的快捷方式(如果点击旧的快捷方式它不起作用)?如何避免这种情况?

【问题讨论】:

    标签: wix windows-installer wix3.5


    【解决方案1】:

    原因很简单。 您没有遵循最佳做法。

    更改名称时,必须更改组件 guid。

    查看文档:

    通过测试未证明与组件的先前版本兼容的任何更改。在这种情况下,您还必须更改组件中每个资源的名称或目标位置。

    组件中任何文件、注册表项、快捷方式或其他资源的名称或目标位置的更改。在这种情况下,您还必须更改组件中每个资源的名称或目标位置。

    从组件中添加或删除任何文件、注册表项、快捷方式或其他资源。在这种情况下,您还必须更改组件中每个资源的名称或目标位置。

    Changing the Component Code (Windows)

    更新只会重新安装/覆盖文件。源文件和名称取自新的 msi。当您重命名文件/快捷方式时,对旧文件名的引用会丢失。 这就是为什么旧链接没有被安装程序覆盖和覆盖的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-15
      • 2011-08-11
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      相关资源
      最近更新 更多