我是一名有用的助手,以下是您需要翻译的内容:
然而,采用这种方法后,我无法找到一种方式来添加控制快捷方式是否安装的条件。
尽管进行了广泛的搜索,但我无法找到一种允许有条件的桌面快捷方式的技术,同时又避免了孤立的注册表键的陷阱。请问有人可以告诉我如何使用WiX解决这个问题吗?
谢谢。
我正在编写一个针对单个计算机应用程序的安装程序。用户可以选择一个复选框以请求在桌面上创建快捷方式。
我的第一次尝试使用了一个具有条件语句的组件来创建快捷方式 - 它看起来像:
<Component
Id="C_desktopShortcut"
Guid="PUT_GUID_HERE">
<Condition>INSTALLDESKTOPSHORTCUT</Condition>
<Shortcut
Id="S_DT_ReadMe"
Name="ReadMe.txt"
Description="ReadMe shortcut"
Target="[INSTALLFOLDER]ReadMe.txt" />
<RegistryValue
Root="HKCU"
Key="Software\MyTest\Shortcut"
Name="DesktopShortcutInstalled"
Type="integer"
Value="1"
KeyPath="yes" />
</Component>
这确实有效,但由于它是每台计算机的安装,如果由一个管理员用户安装并被另一个管理员用户卸载,将导致孤立的注册表键。这在(WiX) Program files shortcut for per-machine install中已经有描述。
然后,我重写了代码,在与主可执行文件相同的组件中创建快捷方式,例如:
<ComponentGroup
Id="CG_ProductComponents"
Directory="INSTALLFOLDER">
<Component
Id="C_ReadMeFile"
Guid="PUT_GUID_HERE">
<File
Id="FILE_ReadMeTxt"
Source="..\Docs\ReadMe.txt"
KeyPath="yes">
<Shortcut
Advertise="yes"
Id="SH2_readme"
Directory="DesktopFolder"
Name="TestReadMe"
WorkingDirectory="INSTALLDIR"
Description="Test shortcut">
</Shortcut>
</File>
</Component>
然而,采用这种方法后,我无法找到一种方式来添加控制快捷方式是否安装的条件。
尽管进行了广泛的搜索,但我无法找到一种允许有条件的桌面快捷方式的技术,同时又避免了孤立的注册表键的陷阱。请问有人可以告诉我如何使用WiX解决这个问题吗?
谢谢。