我正在将我们当前的单片安装程序转换为使用WiX 3.7 Bundle / chain。我们现在有几个组件正在构建自己的可单独维护的MSI安装程序。我的下一个任务是将所有这些添加到引导加载程序/引导程序中,但我遇到了麻烦。
我们各个安装程序的要求是它们包含文件名中的版本(即MyApplication-5.4.22.msi)。我没有看到像Heat这样的工具来收集MSI包,我没有看到添加带有通配符的MsiPackage元素来计算不同包名的方法。
作为最后的手段,我可以将Bundler包装在另一个MSBuild脚本中,该脚本将“自动完成”文件名,并将作为变量的路径传递给bundler。我希望有人可以推荐一个直接在wxs或wixproj设置中运行的解决方案。
答案 0 :(得分:1)
如果使用WiX安装项目构建msi文件,则WiX Bootstrapper项目可以引用它们,从而创建有用的WiX变量,这些变量被定义为msi文件的路径。
如果情况并非如此,那么您可以编写一些运行before Build目标的MSBuild目标来确定实际的文件路径。如果可用的标准和社区MSBuild任务不足,您可以通过创建程序集或使用your own tasks来编写inline code。 (并且,当然,总是有Exec任务来执行命令行程序,如cmd.exe,之后您可以解析其输出以提取msi路径。)