0

我对 WiX 没有那么丰富的经验,并且在通过 MSP 更新期间重命名快捷方式时遇到问题。在我以前的 MSI 中,我使用以下命令创建了一个桌面快捷方式

<DirectoryRef Id="TARGETDIR">
  <Directory Id="DesktopFolder" Name="Desktop">
    <Component Id="MyShortcut" Guid="38EF1A86-5D1B-4D78-AD66-DD1AA6635A9B" Win64="$(var.Variables_Win64)" MultiInstance="no">
     <Shortcut Id="MyShortcut"
                  Directory="DesktopFolder"
                  Icon="MyIcon"
                  Name="My Application"
                  Description="Runs my application"
                  Target="[URL]" />
      <RemoveFolder Id='DesktopFolder' On='uninstall'/>
    </Component>
  </Directory>
</DirectoryRef> 

在我的 MSP 中,我想这样重命名 schortcut

<DirectoryRef Id="TARGETDIR">
  <Directory Id="DesktopFolder" Name="Desktop">
    <Component Id="MyShortcut" Guid="38EF1A86-5D1B-4D78-AD66-DD1AA6635A9B" Win64="$(var.Variables_Win64)" MultiInstance="no">
     <Shortcut Id="MyShortcut"
                  Directory="DesktopFolder"
                  Icon="MyIcon"
                  Name="My New Application"
                  Description="Runs my new application"
                  Target="[URL]" />
      <RemoveFolder Id='DesktopFolder' On='uninstall'/>
    </Component>
  </Directory>
</DirectoryRef>

当我运行升级时,我得到的是一个新的桌面快捷方式以及孤立的旧快捷方式。我从这篇文章中了解为什么会发生这种情况,为什么在主要升级(迁移)之后有两个快捷方式?但我不确定如何解决此问题并更新原始快捷方式名称或删除孤立的快捷方式名称。我无法构建 MSI,它必须是 MSP,因此欢迎任何建议。

先感谢您 ;-)

4

1 回答 1

2

该解决方案似乎添加到 RemoveFile 中,但全名包括快捷方式的扩展名。我最初在发布之前尝试过这种方法,但没有在名称上指定 .lnk 所以它不起作用。

<DirectoryRef Id="TARGETDIR">
  <Directory Id="DesktopFolder" Name="Desktop">
    <Component Id="MyShortcut" Guid="38EF1A86-5D1B-4D78-AD66-DD1AA6635A9B"
               Win64="$(var.Variables_Win64)" MultiInstance="no">
     <Shortcut Id="MyShortcut"
                  Directory="DesktopFolder"
                  Icon="MyIcon"
                  Name="My New Application"
                  Description="Runs my new application"
                  Target="[URL]" />
      <RemoveFolder Id='DesktopFolder' On='uninstall'/>
      <RemoveFile Id='LegacyShortcut ' Name='My Application.lnk' On='install'/>
    </Component>
   </Directory>
</DirectoryRef>
于 2017-02-10T11:16:34.733 回答