我正在运行加热来生成一个wxs文件.代码如下.
我想将dir.prompts中的所有文件添加到安装程序中的wxs文件中.我将其添加为自动构建过程的一部分(因此我无法在生成后修改wxs文件).
生成wxs文件,它看起来如下所示.Hoewever,然后Light抱怨它无法找到SourceDir\Valid.wav的位置.所以我想我的问题是,SourceDir是我正在读取文件的目录,还是我不知道的一些魔术目录?非常感谢.
<Fragment>
<ComponentGroup Id="COMPONENTS">
<Component Id="dmp120F8C2794******" Directory="dir31A7EE61C56025FE2564A81E28E8C132" Guid="{6D40EBC0-***-***-B972-**********}">
<File Id="fil919100C2******D045EC131" KeyPath="yes" Source="SourceDir\Valid.wav" />
</Component>
<exec program ="${dir.wix}\heat.exe">
<arg value = "dir"/>
<arg line = "${dir.prompts}"/>
<arg value= "-gg"/>
<arg line="-cg "COMPONENTS""/>
<arg line = "-out "${dir.thisinstaller}\\COMPONENTS.wxs""/>
</exec>
Run Code Online (Sandbox Code Playgroud)
zar*_*oss 16
请注意,如果使用-b将光源添加到搜索路径,灯光将搜索文件的其他SourceDir
例如
light.exe -b Foo ...
Run Code Online (Sandbox Code Playgroud)
(答案:https://stackoverflow.com/a/6920979/640282)
ima*_*agi 13
你应该添加-var开关到heat命令行:
来自heat.exe的帮助:
-varVariableName substitute File/@ Source ="SourceDir"
使用预处理器或wix变量.例如:
-var var.MySource
将成为File/@ Source ="$(var.MySource)\ myfile.txt"
和
-var wix.MySource
将成为File/@ Source ="!(wix.MySource)\ myfile.txt"