出于好奇,我想了解这些自包含安装程序的行为,并尝试自己编写一个简单的安装程序。
我在Google上进行了一些搜索,并没有真正找到解释它的有用文章。但是AFAIK,安装程序应该有一小部分代码驻留在可执行文件的顶部。它从可执行文件的后面提取数据,并根据库存文件(可能是xml?)将它们解释为文件。其他操作(如写入寄存器条目)也可以在清单文件中指定。
现在我对文件结构的猜测是真的吗?如果是这样,我想我只需要阅读关于PE格式的内容,然后在概念上我就可以轻松实现它。如果我猜错了,我很想知道它是如何工作的。
谢谢你的时间!
答案 0 :(得分:1)
通常,安装程序包是包含以下内容的自包含压缩可执行文件(SFX),
对于MSI包,它有点复杂。它是在COM结构化存储文件中打包为SQL数据库的专有格式。它还包含安装包内的虚拟文件系统(使用文件流进行文件访问)。
您可以查看一些免费工具并检查许多典型功能,以使安装程序可执行文件如下:
答案 1 :(得分:0)
对于Windows来说,它几乎是
声明:MSI,AppX,ClickOnce
势在必行:任意数量的第三方工具,脚本和本土EXE
MSI通常是您的最佳选择。运行时已经是Windows的一部分,因此当您双击MSI数据库MSIEXEC接管时。声明性模型的要点是将需要完成的工作与您的工作方式分开。命令模型基本上是一些简单到复杂的框架来编写程序代码来做实际的安装工作。
要详细询问其中任何一项如何在较低水平上运作,这是一个广泛的问题。对于MSI,它们都在MSDN上的Windows Platform SDK文档中。