我使用 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>