C++ 安装VC++;通过集团政策进行再发行?

C++ 安装VC++;通过集团政策进行再发行?,c++,windows,visual-studio-2010,wix,bootstrapper,C++,Windows,Visual Studio 2010,Wix,Bootstrapper,这应该很简单,但似乎根本不是 我希望创建一个安装程序,供那些使用组策略安装产品的人使用。我不知道这是MSI还是EXE。可以通过组策略安装EXE安装吗?我和另一个Wix新手聊天,他似乎认为安装一个简单的MSI文件是个坏主意 我的产品使用VisualC++ 2010重新分配表。我不希望使用合并模块。和link都给出了使用它们的一些缺点。我反对1)安装用户未同意的东西,2)没有版本号为的控制面板卸载项,用户可以检查并查看是否有最新版本。因此,我不感兴趣的是,如果有人告诉我为什么我应该使用合并模块。如果

这应该很简单,但似乎根本不是

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

<>我的产品使用VisualC++ 2010重新分配表。我不希望使用合并模块。和link都给出了使用它们的一些缺点。我反对1)安装用户未同意的东西,2)没有版本号为的控制面板卸载项,用户可以检查并查看是否有最新版本。因此,我不感兴趣的是,如果有人告诉我为什么我应该使用合并模块。如果没有合并模块,我所要求的确实是不可能的,那么请解释原因

我不知道是否有必要使用引导程序启动EXE安装。我想是的,但对我来说,这似乎很奇怪,因为一个MSI有着如此复杂的表和描述,在没有安装可再发行程序的情况下,不能启动一个简单的EXE

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

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


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

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

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


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

实际上“运行”MSI的Windows Installer可以正常运行dll(和exe),但如果他们尝试启动另一个安装,就会遇到“一次只安装一个”的墙。这听起来像是包含了vcredist_x86.exe。这是真的吗,还是这只适用于MSI?根据George Vella下面的评论,vcredit_x86.exe扩展为MSI,因此这将包括它。我并不特别关心如何提供它。这将是一个退路,但我更愿意自动启动安装,只有在需要的时候。如上所述,我有一个微星,似乎做的工作,除了先决条件已经,只剩下一点调整要做。还有另一个选择。您可以将运行时DLL和mainfest文件打包到MSI中,并将它们安装到产品的安装文件夹中。通过windows update提供的对运行时的更新不会更新您的DLL,但也可以这样做,并且工作得很好。正如我的问题所述,这并不能让我获得一个控制面板卸载条目,如果需要,用户可以检查并安装更新。那么您的选项确实有限。GPO的软件安装部分只接受MSI,您不能从产品的MSI调用另一个安装,因为windows installer肯定会抱怨(安装已在运行错误),因为一次只能安装一个程序。如果你想保持一切干净,那么在你的手册中,指示管理员将vc_red.msi添加到GPO中,他/她将使用该GPO部署你的程序。如果是这样,我不确定是否可以合法地从vcredist_86.exe msi重新分发提取的msi。我已经看到人们如何使用合并模块来创建一个MSI只是为了可再发行。这就提出了一个问题:一个MSI可以创建两个控制面板卸载条目吗?