在我的公司,我们使用旧的过时ant系统例程来创建msi安装程序。由于它非常难以管理,我用python例程替换了整个例程。
它基本上做同样的事情,收集一堆文件,并用wix构建一个msi安装程序。
我正在处理的问题是ant例程创建的msi比python例程创建的msi大约900KB(两者都是~140MB)。我试图寻找差异,但无法找到一个。
我尝试了什么:
我没有其他想法可以解决为什么存在文件大小差异,但由于可能缺少某些东西而感到有点不确定。有什么想法吗?
答案 0 :(得分:2)
ANT和Python构建器是否都在构建计算机上使用相同的Wix安装?当应用程序文件相同时,最终安装包的这些小的差异可能来自存根/引导程序以及包含在程序包中的Wix的其他资源。
如果您使用不同的Wix版本/版本来构建这两个软件包,那么这些安装程序资源可能会有不同的大小,因此最终安装程序包的大小不同。
答案 1 :(得分:0)
我今天遇到了同样的问题:我使用MakeMsi从完全相同的二进制文件中创建了多个MSI,其中不同的是K字节。起初我认为我的构建脚本有问题。
经过一些网络搜索(没有直接成功),我尝试了由MakeMsi创建者提供的MSIDIFF转储功能。它将内容转换为可处理的MakeMsi脚本(纯文本)。
我抛弃了两个不同大小的MSI包,并将结果(几乎相同大小)与diff工具(我使用WinMerge,TortoiseMerge)进行了比较。我发现只有几行中的值(GUID,日期)不同。
这使我得出结论,MSI的不同大小是由于不同的压缩率(我们知道CAB files所涉及的)。尝试使用Zip和两个相同大小的文本,但差别不大,你会得到同样的现象。
答案 2 :(得分:0)
MSI文件是“稀疏”文件,而不是连续的数据流。只是工具构建MSI文件的顺序可能会导致不同的大小。