简体   繁体   English

NSIS - 合并模块

[英]NSIS - Merge Modules

I'm looking for away to include into the installation the merge modules of VC2008 (mscrt90 and atl90) My main problem involved around bundling the policy file. 我正在寻找安装包含VC2008的合并模块(mscrt90和atl90)我的主要问题是捆绑策略文件。 I've no problem adding the DLL and the manifest files but the policy seems to behave differently and can not simply be copied over... 我添加DLL和清单文件没有问题,但政策似乎行为不同,不能简单地复制...

The best solution I came up with so far was to include the MSM files into a separate MSI that is being installed by the NSIS script. 到目前为止,我提出的最佳解决方案是将MSM文件包含在由NSIS脚本安装的单独MSI中。 But this is an ugly solution. 但这是一个丑陋的解决方案。

Thanks, Eden 谢谢,伊甸园

NSIS is not a good solution for this. NSIS不是一个很好的解决方案。 NSIS has no support for merge modules whatsoever. NSIS不支持合并模块。 If you are looking for a free open source solution, try using Windows Installer XML (WiX, http://wix.sourceforge.net/ ) 如果您正在寻找免费的开源解决方案,请尝试使用Windows Installer XML(WiX, http ://wix.sourceforge.net/)

Instead of using the merge modules to include the installation you can use the official visual studio redistributable installer. 您可以使用官方Visual Studio可再发行安装程序,而不是使用合并模块来包含安装。 They can be called from the nsis script in the installation process with silent mode. 可以使用静默模式在安装过程中从nsis脚本调用它们。

If your installer is not MSI based, why use merge modules at all? 如果您的安装程序不是基于MSI,为什么要使用合并模块?

Your Visual Studio install should have a redist folder with exe files you can use to install the CRT etc 您的Visual Studio安装应该有一个redist文件夹,其中包含可用于安装CRT等的exe文件

I found this on NSIS forums: msiexec /i foo.msm /qn' but did not had time to test it yet. 我在NSIS论坛上发现了这个: msiexec /i foo.msm /qn'但是没有时间测试它。 Clearly I will do it. 显然我会这样做。

Note: obviously you need msiexec which may be missing on ancient versions of Windows, but probably you should not support these anymore. 注意:显然你需要在古老版本的Windows上可能缺少的msiexec ,但可能你不应该再支持这些了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM