msi档案格式


msi档案格式

文章插图
msi档案格式【msi档案格式】MSI档案是Windows Installer的数据包 , 它实际上是一个资料库 , 包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程式所需的指令和数据 。MSI档案将程式的组成档案与功能关联起来 。此外 , 它还包含有关安装过程本身的信息 。如目标资料夹路径、系统依赖项、安装选项和控制安装过程的属性 。採用MSI安装的优势在于你可以随时彻底删除它们 , 更改安装选项 , 即使安装中途出现意想不到的错误 , 一样可以安全地恢复到以前的状态 , 正是凭着此强大功能 , 越来越多的软体开始使用MSI作为发行的方式了 。
基本介绍中文名:msi档案格式
含义:是Windows Installer的数据包
性质:一个资料库
支持系统:Windows
档案格式初识Windows功能增强“外挂程式”MSI我们经常可以看到许多软体只有一个扩展名为MSI的档案 , 双击这个档案运行 , 就会出现和Windows套用软体安装非常相似的安装过程 , MSI档案到底是什幺?为什幺许多软体开始用MSI格式来发行呢?请听我慢慢说来 。档案由来说到MSI档案 , 不得不先说说Windows Installer , 它不只是安装程式 , 而且是可扩展的软体管理系统 。Windows Installer的用途包括:管理软体的安装、管理软体组件的添加和删除、监视档案的复原以及使用回滚技术维护基本的灾难恢复 。另外 , Windows Installer还支持从多个源位置安装和运行软体 , 而且可以由想要安装自定义程式的开发人员自定义 。要想使用这些功能 , 就必须通过MSI档案 。MSI档案是Windows Installer的数据包 , 它实际上是一个资料库 , 包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程式所需的指令和数据 。MSI档案将程式的组成档案与功能关联起来 。此外 , 它还包含有关安装过程本身的信息:如安装序列、目标资料夹路径、系统依赖项、安装选项和控制安装过程的属性 。优势Windows Installer技术就是合併在一起发挥作用的两个部分:客户端安装程式服务(Msiexec.exe) 和Microsoft软体安装(MSI)软体包档案 。Msiexec.exe 程式是 Windows Installer 的一个组件 。当 Msiexec.exe 被安装程式调用时 , 它将用 Msi.dll 读取软体包档案 (.msi)、套用转换档案 (.mst) 併合并由安装程式提供的命令行选项 。Windows Installer 执行所有与安装有关的任务:包括将档案複製到硬碟、修改注册表、创建桌面捷径、必要时显示提示对话框以便用户输入安装首选项 。採用MSI安装的优势在于你可以随时彻底删除它们 , 更改安装选项 , 即使安装中途出现意想不到的错误 , 一样可以安全地恢复到以前的状态 , 正是凭着此强大功能 , 越来越多的软体开始使用MSI作为发行的方式了 。如果你对MSI档案感兴趣 , 可以用WinRAR等压缩软体打开 , 看一下里面的内容 , 满足一下好奇心 。安装支持WinMe和WinXP对MSI支持得很好 , 但其他版本的Windows就需要安装一个外挂程式才能使用MSI格式的档案 。定製MSI前面我们介绍了很多MSI档案的内容 , 其实MSI并不神秘、複杂 , 我们自己都能製作 , 并且製作MSI档案的工具已经在Windows的安装盘上了 。首先 , 找到Windows2000的安装光碟 , 双击下边的这个位置的档案:valueadd\3rdparty\Mgmt\Winstleadmle.msi , 很快软体就自动安装到了电脑中 。在开始选单的所有程式里边就多了“VERITAS software”组 , 点击运行里边的“VERITAS discover”就可以开始製作MSI档案了 。製作MSI档案的基本原理就是 , 在我们安装一个软体以前 , 先给电脑的磁碟拍个“快照” 。然后将要安装的软体安装到电脑中 , 并对注册表等内容做修改 , 等到确认这个软体能正确运行后 , 再给电脑的磁碟拍个“快照” 。Discover软体会自动找出两次“快照”的不同 , 并且生成一个MSI档案 。最后 , 如果你愿意 , 可以使用VERITAS software组中的另一个工具:Veritas Software Console对这个MSI档案进行进一步的包装、调整 , 这样一个MSI档案包就生成了 。下面 , 我们具体通过一个例子来介绍一下如何使用Discover生成一个MSI档案 , 假定我们的软体my的安装过程是:将my.exe档案安装到C:\programmeme files\myprog下 , 将run.dll放到windows\system里 , 在注册表的HKEY_LOCAL_MACHINE的software项中建立一个myprom项 , 并且在其中添加一个值为OK的value项目 。第一步:运行Discover , 弹出程式界面 , 可以直接点“Next”按钮继续 。第二步:在图3的对话框中 , 首先在第一文本框为你的程式起个名字 , 比如这里用的“My programmeme”;第二个对话框是输出MSI档案的存放位置和档案名称 , 这里选择保存为E:\my_setup.msi;第三个框为压缩档的语言 , 可以使用其默认值 。填好后点“Next”按钮 。第三步:为Discover存放快照档案选择一个临时的空间 , 可以选一个磁碟空间比较大的磁碟 。第四步:在接下来如图4的对话框中要选择Discover需要扫描并拍“快照”的磁碟 , 你的程式要装到哪个盘就选择哪个盘 , 并且点一下“Add”按钮加到要扫描档案的列表中 , 你可以选择几个或者所有的磁碟 , 不过这样会在扫描的过程中浪费更多的时间 , 所以应该儘量少选择磁碟 。这里只选择C糟 , 因为我们的软体是装到C糟的 。然后点“Next” 。第五步:在如图5所示的对话框中为上一步选择的每个磁碟选择需要扫描的资料夹或档案 , 因为我们上一步只选择了C糟 , 所以为C糟选择就可以了 。另外 , Discover自动加入了一些特殊的档案和目录 , 我们可以根据需要决定是否将它们移出要扫描的档案列表 , 不过最好保留它们 。这里我们把“C:\programmeme files”和Windows资料夹添进去 , 先在左边的档案框中点中档案或资料夹 , 然后点Add按钮就可以了 。对于注册表的扫描 , Discover为了加快扫描速度 , 只扫描部分注册表 , 可以扫描到大部分程式对注册表的修改 , 如果不放心的话 , 也可以将下边的“Enhanced Registry Scan”点中 , 这样速度可能会慢很多 , 临时档案也大大增加 , 不过能对注册表所有的改动加以记录 。由于我们的软体对注册表只是小改动 , 所以没必要选择扫描所有注册表 。然后点“Next”继续 。第六步:接下来Discover将对系统进行扫描生成“快照” , 要耐心的等待 , 可能要几分钟的时间才行 。第七步:在扫描完成后 , 会弹出一个对话框 , 大概意思就是告诉你扫描已经完成 , 问你是否要选择一个程式来运行 , 从而自动安装你的软体 , 我们正要製作安装程式 , 没有程式可运行 , 所以要点“取消”按钮 。第八步:接下来 , 我们就要手动安装自己的软体了 , 先将my.exe档案拷贝到C:\programmeme files\myprog下 , 再把run.dll拷贝到windows\system里 , 然后用注册表编辑器在注册表的HKEY_LOCAL_MACHINE的software项中建立一个myprom项 , 并在其中添加一个值为OK的value键 。注意 , 除了这些改动 , 应儘量避免其他无关的改动 。然后我们试着运行一下刚刚安装的my.exe档案 , 测试一下是否正确安装 。第九步:确认安装没有问题了 , 要再次运行Discover程式 , 这次运行Discover时 , 出现的是如图6所示的一个界面 , 有两个选项 , 第一项是生成安装后的快照 , 用于与前一次的快照比较生成MSI档案 , 第二个选项是放弃上一次的扫描 , 当然要选第一项了 , 然后点“Next” 。这时Discover又开始重新对电脑进行扫描 , 生成“快照” , 并自动生成了安装档案 。第十步:如果你愿意 , 可以启动与Discover程式在一起的VERITAS Software console对MSI档案的信息进一步更改 , 过程比较简单 , 只要先打开一个MSI档案 , 然后就可以进行改动了 , 这里就不介绍了 。就这样 , 我们就生成了一个自己的MSI档案了 。