VC 2012 在 Windows XP 下合并模块



我们有一个用于本机Windows的VC++ 2012应用程序(经典胖应用程序)此外,我们还有一个基于NSIS的安装程序。

我想将VC110_CRT合并模块添加到安装程序中,但合并模块无法安装在 Windows XP 上。错误消息是。

Windows 安装程序服务无法安装此安装包。您必须安装与较新版本的 Windows 安装程序服务兼容的 Windows Service Pack。

是的,它是一个完全更新的Windows XP(SP 3 +所有更新)。据我了解,我们至少需要Windows Vista来安装更新。

我的问题:

  • 有没有办法转换Microsoft_VC110_CRT_x86.msm模块,使其在Windows xp下可用

我知道我可以使用vs_2012_redist,但它有 ~6,5 MB 而不是 ~0,8 的合并模块大小。我只需要 CRT,因为该应用程序使用 QT 而不是 MFC/ATL/....

这是不正确的错误消息。 MSIEXEC正在查看MSM的SummaryInformationStream中的架构verson,并看到它比Windows上的MSI版本更新,并为您提供此错误消息。

事实上,合并模块永远无法安装,因为它们没有产品或功能的概念。它们只是组件和相关安装元数据的封装集合。合并模块类似于 .C/C++ 中的 LIB 文件,并在构建时静态链接(合并)到 MSI 中。

NSIS不是Windows安装程序技术,因此它不能使用合并模块。 相反,您应该使用 Microsoft 提供的可再发行组件,并使用正确的命令行启动 EXE。

您唯一的其他选择是私下部署所需的 DLL(在您的应用程序目录中),在 EXE 中静态链接它或转储 NSIS 并创建适当的 MSI。

请注意您选择的安全/修补影响。

相关内容

  • 没有找到相关文章

最新更新