我使用WIX创建了一个安装程序。作为安装的一部分,两个快捷方式(启动和卸载)将添加到“ProgramMenu-> MyCompany-> MyProductName”。
我并排安装同一个应用程序的两个版本后。我尝试使用卸载快捷方式卸载一个版本。
卸载会删除该版本的所有文件和文件夹。但未能删除快捷方式。当我再次点击卸载时。以下错误显示:
“此操作仅对当前安装的产品有效”
然后我为另一个版本运行卸载,这次成功删除了THAT版本的两个快捷方式。但是,将失败版本的快捷方式永久保留在“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>
答案 0 :(得分:1)
我自己解决了这个问题,基本上需要做两件事: