使用WiX Toolset 3.10,尝试创建使用 heat.exe 实用程序收集的某些文件的快捷方式,如下所示:
"%WIX%\bin\heat.exe" dir SourceDir -nologo -platform x64 ^
-ke -gg -g1 -suid -srd -scom -sreg -dr INSTALLDIR ^
-cg ProjFiles -out ProjFiles.wxs
我的问题:
我现在知道我应该使用XSLT文件来转换 ProjFiles.wxs ( heat.exe -t选项>)但是关于如何编写它的WiX特定文档是不存在的:有人可以提供一个示例,在桌面上为Shortcut
“Prog.exe”添加Id
吗?
由于-g1
标志,共享相同基本名称的文件(例如“SourceDir \ dirA \ file.txt”和“SourceDir \ dirZ \ file.txt”)将共享相同的{{ 1}}(即“file.txt”);为什么这不是冲突,看看.MSI如何构建并运行良好?
答案 0 :(得分:4)
记录了特定于WiX的信息,但学习足够的XSL是一个挑战。这应该让你开始。你可能必须适应你的名字,热量论据等。
STDOUT
更具体和更早的模板在更普遍或更晚的模板之前匹配。因此,基础是复制每个元素,属性,文本和注释,除了您想要更改的元素,属性,文本和注释。对于您想要更改的内容,您可以重建所有内容 - 在这种情况下,通过复制Component元素具有的所有内容,然后添加Shortcut和RemoveFolder元素。
答案 1 :(得分:0)
这应该让它在桌面上创建一个快捷方式。您将收到ICE警告,因为该快捷方式与Prog.exe文件的组件不在同一组件中,但可以安全地忽略(如果您将警告视为错误,请添加ICE到Suppress特定的ICE验证列表。(wixproj中的wixproj属性工具设置。在wixproj中的<SuppressIces>
标签。或者,-sice:cmd行中的ICE ##)
在目录定义中定义DesktopFolder
<Directory Id="TARGETDIR" Name="SourceDir">
...
<Directory Id="DesktopFolder"/>
...
</Directory>
然后有一个组件
<Component Id="ProgDesktopShortcut">
<Shortcut
Id="ProgDesktopShortcut"
Directory="DesktopFolder"
Target="[#Prog.exe]"
Name="Prog Shortcut"
WorkingDirectory="INSTALLDIR" >
</Shortcut>
<RegistryValue
Id="ProgDesktopRegShortcut"
Root="HKCU"
Key="SOFTWARE\Prog\"
Name="ProgInstall"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>