所以这是基本设置。我有一个现有的WIX项目,可以将更多的单个片段构建到更大的MSI中。我正在尝试更改项目,以允许您选择要安装的单个部分。我遇到的程序是,当我在较小的目录上运行加热来创建单个组件时,源路径不正确。我希望能有一个更有意义的例子。
所以我有这样的基本文件夹结构:
C:\ PROJDIR \富\ BAR1
C:\ PROJDIR \富\ BAR2
我曾经用命令简单地收获C:\ Foo(Heat.exe dir Foo -dr FOO_DIR_REF -out File.wxs),现在我已将其更改为收获每个单独的Bar文件夹(Heat.exe目录) Foo \ Bar1 -dr BAR1_DIR_REF -out File1.wxs)和(Heat.exe dir Foo \ Bar2 -dr BAR2_DIR_REF -out File2.wxs)。我遇到的问题是收获的结果如下:
<Component Id="cmpblablabla" Guid="{stuff-here}">
<File Id="filblabla" KeyPath="yes" Source="SourceDir\Bar1\file.here" />
</Component>
当尝试构建msi时,它会抱怨因为找不到SourceDir \ Bar1。基本上我需要的是一种让它看起来像这样的方法:
<Component Id="cmpblablabla" Guid="{stuff-here}">
<File Id="filblabla" KeyPath="yes" Source="SourceDir\Foo\Bar1\file.here" />
</Component>
这似乎是一个非常简单的问题,我确信很容易完成,但我所做的所有搜索都没有提出任何有用的信息。
答案 0 :(得分:14)
请注意,如果您使用light
SourceDir
添加到搜索路径,-b
会搜索其他light.exe -b Foo ...
个文件
e.g。
{{1}}
答案 1 :(得分:2)
应该是
<Component Id="cmpblablabla" Guid="{stuff-here}">
<File Id="filblabla" KeyPath="yes" Source="$(var.ProjectName.TargetPath)\Bar1\file.here" />
</Component>
可用的不同属性是
答案 2 :(得分:2)
您的问题的答案都在heat.exe帮助文本中。 : - )
为了最终获得正确的目录收集,请将热量指向根目录(Foo),并在命令行中指定-srd
开关。正如帮助文本所述,这将省略根目录收获,你很可能最终得到你需要的东西。
为了获得更大的灵活性,您可以指定-var
开关,提供要替换SourceDir
显式语句的WiX变量。再次,只需运行heat.exe
并查看输出 - 您将找到足够的信息和示例。