我们有一个用于本机Windows的VC ++ 2012应用程序(经典胖应用程序) 我们还有一个基于NSIS的安装程序。
我想将VC110_CRT合并模块添加到安装程序,但无法在Windows XP上安装合并模块。错误消息是。
Windows Installer服务无法安装此安装包。您必须安装一个Windows Service Pack,其中包含较新版本的Windows Installer服务。
是的,它是一个完全更新的Windows XP(SP 3 +所有更新)。据我了解,我们至少需要Windows Vista来安装更新。
我的问题:
我知道我可以使用vs_2012_redist,但它有~6,5 MB而不是〜0,8的合并模块大小。 我只需要CRT,因为该应用程序使用QT而没有MFC / ATL /....
答案 0 :(得分:-1)
这是一条不正确的错误消息。 MSIEXEC正在查看MSM的SummaryInformationStream中的模式版本,并且看到它比Windows上的MSI版本更新,并且给出了此错误消息。
事实上,永远不能安装合并模块,因为它们没有产品或功能的概念。它们仅仅是封装的组件集合和相关的安装元数据。合并模块类似于C / C ++中的.LIB文件,并在构建时静态链接(合并)到MSI中。
NSIS不是Windows Installer技术,因此无法使用合并模块。相反,您应该使用Microsoft提供的redistributable并使用正确的命令行启动EXE。
您只有其他选择是私下部署所需的DLL(在您的应用程序目录中),在EXE中静态链接它或转储NSIS并创建正确的MSI。
请注意您选择的安全/修补含义。