在 Wix 安装程序中放置多个快捷方式
Placing multiple Shortcuts in a Wix Installer
我正在尝试使用 Wix 在某个文件夹下添加多个快捷方式。代码如下所示:
<DirectoryRef Id ="TARGETDIR">
<Directory Id="DesktopFolder" Name="DesktopFolder">
<Component Id="DesktopP" Guid="61AE5ABE-9ED2-43B0-98C4-3050A40BF061">
<Shortcut Id="DesktopMyProgramShortcut" Name="$(var.MyProgramLabelShortcut)" Target="[#MyProgramcsproja015777b77a239eeb0bd49c2dafdbe31]" WorkingDirectory="bin"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue Root="HKCU" Key="SOFTWARE\Example\Shortcuts" Name="167CE804-4A37-45B8-B010-EB6B3E73BE54" Type="string" Value="" KeyPath="yes"/>
</Component>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id ="ProgramMenuFolderMyProgram" Name ="$(var.MyProgramLabelShortcut)">
<Component Id="ProgramMenuMyProgram" Guid="A7B4A27B-9367-4AFF-B8CC-D6651B18FBFD">
<Shortcut Id="ProgramMenuMyProgramShortcut" Name="$(var.MyProgramLabelShortcut)" Target="[#MyProgramcsproja015777b77a239eeb0bd49c2dafdbe31]" WorkingDirectory="bin"/>
<Shortcut Id="ProgramMenuMyProgramManual" Name="$(var.MyProgramLabelShortcut)" Target="[documents]" Icon="shell32.dll" IconIndex="45"/>
<RemoveFolder Id="ProgramMenuFolderMyProgram" On="uninstall"/>
<RegistryValue Root="HKCU" Key="SOFTWARE\Example\Shortcuts" Name="167CE804-4A37-45B8-B010-EB6B3E73BE54" Type="string" Value="" KeyPath="yes"/>
</Component>
</Directory>
</Directory>
</DirectoryRef>
奇怪的是,当我尝试放置多个快捷方式时,只添加了第二个。我试过将 Shortcut
放在单独的 Components
中,但仍然如此。顺便说一下,在 Windows7 中工作得很好。
关于如何修复它有什么建议吗?
提前致谢!
问题与快捷方式的名称有关。我猜,因为他们的名字相同,所以第一个快捷方式被第二个快捷方式覆盖了。我已经修复它更改第二个快捷方式的名称。
我正在尝试使用 Wix 在某个文件夹下添加多个快捷方式。代码如下所示:
<DirectoryRef Id ="TARGETDIR">
<Directory Id="DesktopFolder" Name="DesktopFolder">
<Component Id="DesktopP" Guid="61AE5ABE-9ED2-43B0-98C4-3050A40BF061">
<Shortcut Id="DesktopMyProgramShortcut" Name="$(var.MyProgramLabelShortcut)" Target="[#MyProgramcsproja015777b77a239eeb0bd49c2dafdbe31]" WorkingDirectory="bin"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue Root="HKCU" Key="SOFTWARE\Example\Shortcuts" Name="167CE804-4A37-45B8-B010-EB6B3E73BE54" Type="string" Value="" KeyPath="yes"/>
</Component>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id ="ProgramMenuFolderMyProgram" Name ="$(var.MyProgramLabelShortcut)">
<Component Id="ProgramMenuMyProgram" Guid="A7B4A27B-9367-4AFF-B8CC-D6651B18FBFD">
<Shortcut Id="ProgramMenuMyProgramShortcut" Name="$(var.MyProgramLabelShortcut)" Target="[#MyProgramcsproja015777b77a239eeb0bd49c2dafdbe31]" WorkingDirectory="bin"/>
<Shortcut Id="ProgramMenuMyProgramManual" Name="$(var.MyProgramLabelShortcut)" Target="[documents]" Icon="shell32.dll" IconIndex="45"/>
<RemoveFolder Id="ProgramMenuFolderMyProgram" On="uninstall"/>
<RegistryValue Root="HKCU" Key="SOFTWARE\Example\Shortcuts" Name="167CE804-4A37-45B8-B010-EB6B3E73BE54" Type="string" Value="" KeyPath="yes"/>
</Component>
</Directory>
</Directory>
</DirectoryRef>
奇怪的是,当我尝试放置多个快捷方式时,只添加了第二个。我试过将 Shortcut
放在单独的 Components
中,但仍然如此。顺便说一下,在 Windows7 中工作得很好。
关于如何修复它有什么建议吗?
提前致谢!
问题与快捷方式的名称有关。我猜,因为他们的名字相同,所以第一个快捷方式被第二个快捷方式覆盖了。我已经修复它更改第二个快捷方式的名称。