0

我使用 WIX 创建了一个安装程序。作为安装的一部分,两个快捷方式(启动和卸载)被添加到“ProgramMenu->MyCompany->MyProductName”。

在我并排安装同一应用程序的两个版本之后。我尝试使用卸载快捷方式卸载一个版本。

卸载会删除该版本的所有文件和文件夹。但未能删除快捷方式。当我再次单击卸载时。以下错误显示:

“此操作仅对当前安装的产品有效”

然后我运行另一个版本的卸载,这次该版本的两个快捷方式都被成功删除。但是将失败版本的快捷方式永远留在“ProgramMenu->MyCompany->MyProductName”中。我不得不手动删除它们。

这是我用来创建快捷方式的代码。我做错什么了吗?

     <Directory Id="ProgramMenuFolder">
        <Directory Id="MyCompanyShortcutDir" Name="MyCompany">
          <Directory Id="MyProductShortcutDir" Name="MyProduct">
            <Component Id="cmpMyProductShortcut" Guid="*">
              <Shortcut Id="MyAppShortcut" Name="My App" Description="My Application" Target="[INSTALLFOLDER]MyApp.exe" />
              <RemoveFolder Id="RemoveMyCompanyShortcutDir" On="uninstall" Directory="MyCompanyShortcutDir" />
              <RegistryValue Root="HKCU" Key="Software\My Company\My Product\" Name="Installed" Type="integer" Value="1" KeyPath="yes" />
            </Component>
            <Component Id="cmpUninstall" Guid="*">
              <Shortcut Id="UninstallShortcut" Name="Uninstall" Description="Uninstall My App"
                Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode] /Lv d:\uninstall.log " Directory="MyProductShortcutDir" />
              <RegistryValue Root="HKCU" Key="[Software\My Company\My Product\" Name="Uninstall" Type="integer" Value="1" KeyPath="yes" />
              <RemoveFolder Id="removeShortcut" On="uninstall"/>
            </Component>
          </Directory>
        </Directory>
      </Directory>
4

1 回答 1

1

我自己解决了这个问题,基本上需要两件事:

  1. 将 ProductCode 更改为 *,这允许并排安装两个版本。
  2. 确保快捷方式的组件指南也为 *
于 2013-07-12T22:59:36.207 回答