2

这应该很简单,但似乎绝非如此。

我希望创建一个安装程序,供那些使用组策略安装产品的人使用。我不知道这是否必须是 MSI 或 EXE。可以通过组策略安装 EXE 安装吗?我与另一位 Wix 新手聊天,他似乎认为安装纯 MSI 文件是个坏主意。

我的产品使用 Visual C++ 2010 可再发行组件。我不想使用合并模块。这个这个链接都给出了使用它们的一些缺点。我反对 1) 安装用户未同意的东西,以及 2) 没有带有版本号的控制面板卸载项目,用户可以检查并查看他们是否拥有最新版本。因此,我对那些向我讲授我为什么应该使用合并模块的人的回应不感兴趣。如果我所要求的在没有合并模块的情况下真的是不可能的,那么请解释原因。

我不知道是否有必要使用引导程序来启动 EXE 安装。我认为确实如此,但对于我来说,对于一个包含如此复杂的表格和描述的 MSI,在尚未安装可再发行组件的条件下,无法启动一个单纯的 EXE,这似乎很奇怪。

如果有必要使用引导程序,我想知道是否有人可以找到一个完整的示例,包括引导程序和 Wix 代码,作为产品安装的示例;理想情况下,与编译它们所需的命令行一起,对于安装 VC++ 2010(或可能是 2012)程序及其可再发行程序等常见情况 - 后者作为 EXE 安装。

我发现这在 Inno Setup Pascal 中很简单而且很容易做到——除了组策略部分。除了使用 Microsoft 安装程序完成此任务的完整示例和/或简单解释之外,我还发现了其他任何内容。无论微软怎么说,我都会认为这样的安装程序是最佳实践。我的代码没有托管,我想支持 XP。因此,需要已经安装一些 .net 的引导程序只会给问题增加另一个未解决的复杂层。一个静态链接到 .net 库的方法可能不会太糟糕,如果它不会产生太多开销的话。我的 MSI 安装似乎运行良好。我没有意识到安装 vcredist_x86.exe 会成为这种难以捉摸的解决方案的问题。我没有 Visual Studio。我正在使用 Qt 框架,并安装 Visual Studio 仅用于编译我的应用程序。如果您有引导程序解决方案,请指定您正在使用的引导程序。理想情况下,可以将相同的想法扩展到多个先决条件,并且可以使用相同的编码模式。如果有办法使用合并模块或附加 MSI,以便可再发行组件拥有自己的控制面板条目,那是可以接受的。

布朗尼建议使用邮件列表、论坛或人满为患的聊天频道来谈论不需要接收大量不必要的邮件列表流量的 Wix。

4

1 回答 1

2

默认情况下,组策略不允许安装 EXE。我确实读到了一些管理员将 EXE 重新打包到 MSI 中以通过 GPO 部署它们,但这很麻烦。还可以编写部署脚本 - GPO 支持脚本执行、机器或用户级别。

您也不能将 MSI 嵌入到另一个 MSI 中,因为任何时候都只能执行一个安装(Windows Installer 设计)。

我不知道您将如何向您的客户提供您的产品,但 vcredist_x86.exe(我正在尝试使用 v100 版本)解压缩到根文件夹并生成一个 msi 和一个 cab(vc_red.msi 和 vc_red.cab)在其他文件中。如果您将这些提供给您的客户,他们可以将它们添加到用于部署您的产品的同一 GPO。

于 2013-09-17T19:27:09.990 回答