我们有一个安装项目,生成一个未压缩的MSI文件,根本没有Setup.exe,稍后由NSIS压缩。
在一个特殊的构建设置中,我希望在它被NSIS包装之前复制该MSI,更改副本并保留它。在msbuild创建之后我还要压缩它
有没有一种简单的方法(可能是某种命令行工具?)我可以用来压缩已创建的msi文件吗?
答案 0 :(得分:2)
是的!请参阅Windows SDK:)
有许多示例脚本显示如何使用Windows Installer API处理MSI文件。
MSI文件本身从未实际压缩,但它可以包含可能被压缩的嵌入式CAB文件。
我建议将一些从MSI中提取任何嵌入式CAB文件的脚本放在一起,将它们一次解压缩到一个临时文件夹,使用更好的压缩重新压缩,然后用MSI中的非压缩CAB替换新压缩的。
您可以找到的任何工具都会完全按照我上面提到的那样工作,但是将它们放在一起应该可以更深入地了解MSI的工作方式:)
答案 1 :(得分:0)
将MSI从未压缩转换为压缩。
"C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\msi\scripts"
复制到管理安装文件夹。CScript //nologo WiFilVer.vbs vendormsi.msi /U
cscript /nologo WiMakCab.vbs eTalk.msi Data1 /R /L /C /U /E /S
使用内部或外部cab文件压缩MSI