msi文件大小

时间:2009-01-21 11:18:22

标签: c# windows-installer

我发现msi文件的大小是69.0 MB,虽然我的主要应用程序的大小是1.5 MB,所以这个大小适用于哪些?!?

提前thnx

6 个答案:

答案 0 :(得分:3)

此行为的微软声明位于MSDN

答案 1 :(得分:2)

与之前的海报一样,我建议使用Orca检查包装。是否包含在Windows Installer SDK中。 您必须知道应用程序运行所需的内容。大多数情况下,您需要VC ++运行时,数据访问组件,第三方dll。如果您的应用程序是托管的,则可以为.NET 2.0运行时添加~20 MB。 .NET 3.5可再发行ia约为200Mb。客户端配置文件约为70mb,这可能会回答您的问题。 考虑使用web donwloaders,它可以按需下载和安装.NET运行时。

答案 2 :(得分:1)

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

另请查看WiX以生成您的msi包。

答案 3 :(得分:1)

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

但是,如果您在谈论“添加/删除程序”对话框中报告的大小,则应阅读this blog entry

答案 4 :(得分:1)

我的猜测是你已经在MSI中包含了大量的合并模块或运行时包,例如.NET框架。包括与 Crystal Reports 相关的任何内容都是扩展您的软件包的常用方法。

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

请注意,“另存为...”行为与Office文档中的行为相同。例如,在Word文档上执行“另存为”时,文件大小可能会大幅减少。造成这种情况的原因是文件内容流式传输到没有碎片的新文件时发生的“碎片整理”。

答案 5 :(得分:0)

这是极端的,我经常使用wix,但我从来没有从小文件中看到过如此大的msi,例如我有大约110 KB的东西。所以我认为这必须归功于您使用的工具。如果删除完整的.msi内容并进行完全重建会发生什么?

此致