gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:25:50 25 4
gpt4 key购买 nike

这应该很简单,但似乎一点也不简单。

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

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

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

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

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

推荐一个邮件列表、论坛或人气旺盛的聊天 channel 来讨论 Wix,而无需收到大量不必要的邮件列表流量,即可获得加分。

最佳答案

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

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

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

关于c++ - 通过组策略安装 VC++ 可再发行组件的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com