使用 WiX 创建桌面快捷方式有两个答案
这两个答案都缺乏对正在发生的事情的任何真正解释。这两种创建快捷方式的方法有什么区别?第一种方法符合WiX - 创建快捷方式文档。
第二种方法有一个MergeRedirectFolder
我似乎找不到任何文档,我不明白为什么第二个示例不需要注册表设置,因为根据 WiX 文档,注册表设置:
是必需的,因为在为当前用户安装非广告快捷方式时,快捷方式不能用作组件的 KeyPath。
这是否意味着第二种方法是宣传的捷径?还是假设用户在每台机器上安装的答案?还是我迷失在酱汁中?(很有可能——第二天尝试使用 WiX,因为微软强迫我走这条路。)
第一个:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationShortcutDesktop" Guid="*">
<Shortcut Id="ApplicationDesktopShortcut"
Name="Text under your icon"
Description="Comment field in your shortcut"
Target="[MYAPPDIRPROPERTY]MyApp.exe"
WorkingDirectory="MYAPPDIRPROPERTY"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue
Root="HKCU"
Key="Software/MyAppName"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</Directory>
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="MyCompany" Name="MyCompany">
<Directory Id="MYAPPDIRPROPERTY" Name="MyAppName">
</Directory>
</Directory>
</Directory>
第二个:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" SourceName="Desktop" />
<Directory Id="MergeRedirectFolder">
<Component Id="MyExeComponent" Guid="*">
<File Id="MyExeFile" Source="$(var.ExeSourcePath)" KeyPath="yes">
<Shortcut
Id="DesktopShortcut"
Directory="DesktopFolder"
Name="$(var.ShortcutName)"
WorkingDirectory="MergeRedirectFolder" />
</File>
</Component>
</Directory>
</Directory>