因此,我在Wix中安装了此项目,并希望在桌面上拥有快捷方式。 这一定很容易,你可能会想。但事实并非如此。 在因特网上找到的所有代码片段都不起作用。 经过几个小时的努力和阅读文档,我终于明白了,所以我在这里与你分享。使用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">
<!-- main installation files -->
</Directory>
</Directory>
</Directory>
</Directory>
您的注册表项上需要反斜杠 – 2013-05-14 19:36:21
请勿发布硬编码的GUID。把'Guid =“*”'改为自动生成GUID,或者使用{PUT-GUID-HERE} – 2014-08-10 19:13:55
注册表值是什么? – BatteryBackupUnit 2015-06-17 11:59:37
我认为我的方式比较容易,没必要为你创建一个注册表项:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" SourceName="Desktop" />
<Directory Id="MergeRedirectFolder">
<Component Id="MyExeComponent" Guid="{PUT-GUID-HERE}">
<File Id="MyExeFile" Source="$(var.ExeSourcePath)" KeyPath="yes">
<Shortcut
Id="DesktopShortcut"
Directory="DesktopFolder"
Name="$(var.ShortcutName)"
WorkingDirectory="MergeRedirectFolder" />
</File>
</Component>
</Directory>
</Directory>
从[documentation](http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/create_start_menu_shortcut.html)注册表项:_“这是必需的,因为当为当前用户安装非通告的快捷方式时,快捷方式不能充当组件的KeyPath。”_ – blins 2017-08-04 16:33:32
文件组件本身是关键路径,快捷方式“继承”文件属性。这种方式可能有点令人困惑,虽然当您尝试追踪许多文件中的桌面快捷方式时..用户对于紧凑性和可追溯性的偏好我认为? – 2018-01-02 13:55:36
感谢例子。在WIX 3.8中它仍然引发: “错误3 ICE43:组件...具有未公布的快捷方式,它应该使用HKCU下的注册表项作为其KeyPath,而不是文件。”
所以,我没有与功能的文件这样这样的方式:
<Component Id="cmp79F6D61F01DD1060F418A05609A6DA70"
Directory="dirBin" Guid="*">
<File Id="fil34B100315EFE9D878B5C2227CD1454E1" KeyPath="yes"
Source="$(var.SourceDir)\FARMS.exe" >
<Shortcut Id="DesktopShortcut"
Directory="DesktopFolder"
Name="FARMS $(var.FarmsVersion)"
Description="Local Land Services desktop application"
WorkingDirectory="INSTALLFOLDER"
Icon="FARMS.exe"
IconIndex="0"
Advertise="yes" >
<Icon Id="FARMS.exe" SourceFile="$(var.SourceDir)\FARMS.exe" />
</Shortcut>
</File>
</Component>
而且在产品定义文件中提到桌面文件夹:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop" />
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="FARMS" >
</Directory>
</Directory>
</Directory>
</Fragment>
似乎在这个documentation轻松了许多。
首先,你必须指向你的DesktopFolder,
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop"/>
那么你应该要创建的快捷方式文件创建快捷方式组件。
<Component Id="PutYourComponentIdHere" Directory="FileDirectory" Guid="*">
<File Id="NotYourComponentId" KeyPath="yes" Source="..\YourFileSource\YourExecutable.exe">
<Shortcut Id="desktopServer" Directory="DesktopFolder" Name="YourShourtcutName" WorkingDirectory='WhereShouldYourShortcutPoint' Advertise="yes"/>
</File>
</Component>
它为我工作。我需要把图标,但这很容易的一部分。希望它有效。
太多精力后,我用这样的方式:
<Product ...>
<Feature Id="ProductFeature" Title="SetupProject" Level="1">
...
...
<ComponentRef Id="cmpDesktopShortcut" />
</Feature>
<Component Id="cmpDesktopShortcut" Guid="PUT-GUID-HERE" Directory="DesktopFolder" >
<Shortcut Id="MyDesktopShortcut"
Name="Setup Project"
Description="Opens the program."
Directory="DesktopFolder"
Target="[INSTALLFOLDER]App.exe"
WorkingDirectory="INSTALLFOLDER"/>
<RegistryValue Root="HKCU" Key="Software\My Company\Sample Application" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</Product>
- 1. Wix 3.5桌面快捷方式
- 2. 创建桌面快捷方式
- 3. 使用WiX创建桌面快捷方式到现有文件夹
- 4. 如何使用Python(Ubuntu)创建桌面快捷方式?
- 5. 如何使用requestShortcut()创建桌面快捷方式?
- 6. 使用安装和部署创建桌面快捷方式
- 7. 使用网页创建桌面快捷方式
- 8. 以编程方式创建组合桌面快捷键“快捷方式”
- 9. 使用Windows 7创建JNLP桌面快捷方式:“无法创建快捷方式”
- 10. WIX - 为文件系统上的现有文件创建桌面快捷方式
- 11. 为Node Webkit应用程序创建桌面快捷方式
- 12. 如何创建Java桌面应用程序的快捷方式?
- 13. 如何根据用户输入创建桌面快捷方式?
- 14. WiX工具 - 无法添加桌面快捷方式
- 15. 问题使用Wix创建/删除startmenu快捷方式
- 16. 如何使用WIX创建卸载程序快捷方式
- 17. 从组合键创建桌面快捷方式?
- 18. 在我的网页上创建桌面快捷方式图标
- 19. 如何创建桌面快捷方式的命令
- 20. 在关机前在桌面上创建一个快捷方式
- 21. 创建virtualbox桌面快捷方式分开/可拆卸
- 22. 在桌面上创建快捷方式的NSIS错误
- 23. .NET - 在安装上创建桌面快捷方式?
- 24. 创建桌面快捷方式到PowerShell 4.0? (Windows 7)
- 25. 拖放桌面上的链接以创建快捷方式
- 26. VBS创建带有RunAs参数的桌面快捷方式
- 27. JNLP文件:不创建桌面快捷方式
- 28. 在Linux上创建桌面快捷方式Eclipse Mint
- 29. 以编程方式在用户桌面上创建Web快捷方式
- 30. 通过GPO的桌面快捷方式
这是我觉得有这么多的微软的“技术”这几天的方式。这个评论差不多三年后。所以显然,现有技术水平没有得到改善。 – 2018-01-21 05:59:52