通过组策略安装 VC++ 可再发行组件的最佳方法是什么?



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

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

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

我不知道是否有必要使用引导程序来启动 EXE 安装。 我认为是的,但对我来说似乎很奇怪,对于具有如此涉及的表和描述的 MSI 来说,在尚未安装可再发行组件的情况下,无法踢出纯粹的 EXE。

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

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

布朗尼建议一个邮件列表,论坛或人口稠密的聊天频道来谈论Wix,不需要接收大量不必要的邮件列表流量。

默认情况下,

组策略不允许安装 EXE。 我确实读过一些管理员将 EXE 重新打包到 MSI 中以通过 GPO 部署它们,但这相当黑客。 还可以编写部署脚本 - GPO 支持脚本执行、计算机或用户级别。

也不能在另一个 MSI 中嵌入 MSI,因为任何时候只能执行一个安装(Windows 安装程序设计)。

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

最新更新