为什么msi文件的大小大于主应用程序的大小

问题描述 投票:0回答:5

尽管我的主要应用程序的大小为1.5 MB,但我发现msi文件的大小为69.0 MB,所以所有这些大小都在哪里?!

c# windows-installer
5个回答
2
投票

[像以前的海报一样,我建议使用Orca检查包装。它包含在Windows Installer SDK中。您必须知道运行应用程序所需的内容。通常,您需要VC ++运行时,数据访问组件,第三方dll。如果您的应用程序是托管的,则可以为.NET 2.0运行时添加〜20 mb。 .NET 3.5可再发行大约200Mb。客户端配置文件约为70 mb,也许可以回答您的问题。考虑使用Web下载程序,该程序将按需下载并安装.NET运行时。


2
投票

先决条件和运行时:我的猜测是您包含了大量的[[合并模块,运行时程序包先决条件,例如.NET framework在您的MSI中。像Crystal Reports这样的前提条件是打包您的程序包的一种常用方法。

MSI文件碎片

:另一种可能性是您多次保存MSI]。 MSI文件是COM结构的存储文件,它们不具有内部流的任何“碎片整理”功能。要确定这是否是问题,只需在Orca中打开MSI并执行“另存为...”。如果文件大小减小,则问题(或部分原因)是由文件碎片引起的。

老式Office文件

:请注意,“另存为...”行为与Office文档中的行为相同。例如,在Word文档上执行“另存为”时,文件大小可能会大大减少。原因是将文件内容流式传输到没有碎片的新文件时发生的“碎片整理”。较新版本的Office使用的是带XML和Zip格式的Zip格式,而不是COM结构化的存储文件。

1
投票
1.5 MB到69MB?哇,有很大的不同。如果您使用的是VS安装项目,请检查您是否未捆绑.NET Framework或任何其他组件。

1
投票
Orca检查您的msi文件。它将显示msi文件中的所有表,包括打包文件及其大小。

0
投票
这是极端的,我经常使用wix,但是我从来没有从小文件中看到这么大的msi,例如,我大约有110 KB。因此,我认为这一定是由于您使用的工具所致。如果删除完整的.msi内容并进行完整的重建,会发生什么情况?
© www.soinside.com 2019 - 2024. All rights reserved.