在Wix中将文件夹添加到安装程序而不是文件?

5
我的安装程序需要将文件复制到安装目录... 我的应用程序大约有2000个文件,我不可能编写脚本添加每个文件到安装程序中。 在wix中是否有选项可以一次添加所有文件或包含文件的整个文件夹?我是wix的新手,在任何教程中都没有找到此选项... 请协助我,谢谢。
1个回答

13

Heat是WiX收割工具,您可以在目录上运行它来生成必要的WiX源代码。

编辑: 如果您想在VS项目构建之前运行heat,请将其添加到项目预构建事件中,如下面的截屏所示(这是我设置项目以动态生成我们不断变化的帮助内容的WiX源的方式): VS Build Events

注意我有-var wix.HelpSource开关。由heat生成的WiX源文件将把源文件的位置设置为该变量而不是硬编码。因此,生成的源将具有类似于以下组件的外观:

<Component Id="Welcome.htm" Directory="Content" Guid="INSERT-GUID-HERE">
  <File Id="Welcome.htm" KeyPath="yes" Source="!(wix.HelpSource)\Content\Welcome.htm" />
</Component>

在我的情况下,我会在我的WiX VS项目的“工具设置”屏幕中将该变量定义为相对目录..\..\Help\Output,如下所示: enter image description here

注意: 以这种方式收集文件将导致每次构建时收集到的组件GUID都会发生更改。如果不想更改GUID,请编写一些包装器来调用热更新文件,然后更新您的原始WiX源文件,使所有GUID保持不变。


如果您正在VS项目中使用Wix,请在wixproj的PreBuild部分调用heat harvest工具。这样每次构建时都会重新生成,无需任何手动干预。 - caveman_dick
你能帮我在VS中怎么做吗? - Prakash
@user1357950,我更新了我的答案,展示了如何在Visual Studio中将Heat作为预构建事件运行,根据caveman_dick的建议。 - BryanJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接