如何在安装程序中创建“正常”程序快捷方式?

时间:2013-05-23 21:52:39

标签: wix windows-installer desktop-shortcut

我的当前Wix设置生成的快捷方式存在问题 - 当用户右键单击桌面图标并将其固定到任务栏时,任务栏图标在升级到下一版本时会丢失。我认为这是因为旧的快捷方式无效而新的快捷方式取代了它,使得固定的快捷方式过时了。

快捷方式在目标字段中没有通常的文件名和路径,只是应用程序名称变灰。我认为这是因为使用了广告的快捷方式,但我将其更改为Advertise="no"并添加了Target="[INSTALLFOLDER]MyApp.exe",但快捷方式属性没有更改。我的理论是,如果快捷方式引用了实际文件,只要应用程序没有更改其位置或名称,它在升级后仍然有效。

所以,问题1:是否可以创建一个包含应用程序完整路径名的快捷方式?

问题2:如果有可能,这是个好主意吗?是否存在我们通过这样做破坏的安装程序功能,或其他不良副作用?

问题3:有没有更好的方法来解决我不考虑的问题?

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Fragment>
    <ComponentGroup Id="MyAppComponents">

      <Component Directory="INSTALLFOLDER" Guid="*">
        <File KeyPath="yes" Source="MyApp.exe">
          <Shortcut Id="MyAppShortcut" Name="MyApp" Directory="ShortcutFolder" Icon="Product.exe" Target="[INSTALLFOLDER]MyApp.exe" Advertise="no" />
          <Shortcut Id="DesktopShortcut" Name="MyApp" Directory="DesktopFolder" Icon="Product.exe" Target="[INSTALLFOLDER]MyApp.exe" Advertise="no" />
        </File>

1 个答案:

答案 0 :(得分:0)

您是否尝试过设置快捷方式元素的WorkingDirectory attribute?我遇到了同样的问题,如果我没记错的话,那就解决了我的问题。

<Shortcut Id="MyAppShortcut" Name="MyApp" Directory="ShortcutFolder" Icon="Product.exe" Target="MyApp.exe" Advertise="no" WorkingDirectory="INSTALLFOLDER" />
<Shortcut Id="DesktopShortcut" Name="MyApp" Directory="DesktopFolder" Icon="Product.exe" Target="MyApp.exe" Advertise="no" WorkingDirectory="INSTALLFOLDER" />

试试吧。我很确定快捷方式的目标实际上是工作目录+目标文件,但我有一段时间没有碰过这个东西。