wix - 使用 nant 创建 MSI 的最快途径

标签 wix windows-installer nant

我当前的构建过程使用 MSBuild 进行 .NET 构建,然后我的所有项目 DLL/EXE 和第 3 方 DLL 都位于同一目录中,而一些资源位于子目录中。

我想将此 bundle 打包到 MSI 中。我环顾四周,发现 WiX,它有很多可用的任务。不过,我似乎需要维护一个 .wxs 文件,其中包含对 DLL 完整列表的引用。我真的很想避免手动维护此文件或任何其他文件。

实际上,我有许多项目使用共享构建脚本,因此每个项目都以一致的方式构建。因此,我希望 MSI 步骤也能够自动化,否则每个项目都必须使用当前 DLL 列表 + 任何资源文件来维护 .wxs 文件。

是否可以使用 WiX 或其他任何工具,只需将其指向一个目录并让它打包每个文件/子目录,而无需配置文件?

最佳答案

引用the documentation for Heat (Wix 的一部分)并在构建过程中使用它。

举个例子,类似这样的东西应该有效:

heat.exe dir C:\Build\Release -srd -ag -suid -cg AutoHarvestCG -out c:\Build\Setup\AutoHarvest.wxs

然后AutoHarvest.wxs将自动生成并包含 C:\Source\Release 中的所有文件在ComponentGroup下叫AutoHarvestCG您可以将其包含在 ComponentGroupRef 中任何功能元素中的元素。

您仍然需要维护一个 .wxs 文件,其中包含您的产品、软件包和功能信息,以及您可能具有的任何自定义操作。

关于wix - 使用 nant 创建 MSI 的最快途径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5570079/

相关文章:

apache-flex - 在 ant/nant 中构建 Flex 项目

path - NAnt - 如何获取包含脚本的目录路径

wix - WIX 中的 Media 和 MediaTemplate 有什么区别?

visual-studio - 使用 Visual Studio 创建 MSI 并强制所有用户

Wix burn 在链中跳过包

.net - 使用MSI在客户端计算机上安装必备组件的最佳方法

c# - 卸载后程序仍列在控制面板中

c# - 我们可以使用 nant 在 C# 中构建 .sln 文件吗?

c# - 如果 key 包含空格,WIX 无法将值写入注册表

wix - 如何在Wix中管理同名文件?