家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生
您现在的位置:首页 >> 技术园地 >> 电脑维修技术 >> 信息正文

鲜为人知的Windows“插件”MSI

2009-2-16 23:40:59 来源: 不详 作者:佚名 访问:0次 字号:【
    
一、初识windows功能增强“插件”msi

我们经常可以看到许多软件只有一个扩展名为msi的文件,双击这个文件运行,就会出现和windows应用软件安装非常相似的安装过程,msi文件到底是什么?为什么许多软件开始用msi格式来发行呢?请听我慢慢说来。

1.msi文件的由来
说到msi文件,不得不先说说windows installer,它不只是安装程序,而是可扩展的软件管理系统。windows installer的用途包括:管理软件的安装、管理软件组件的添加和删除、监视文件的复原以及使用回滚技术维护基本的灾难恢复。另外,windows installer还支持从多个源位置安装和运行软件,而且可以由想要安装自定义程序的开发人员自定义。要想使用这些功能,就必须通过msi文件。msi文件是windows installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。msi文件将程序的组成文件与功能关联起来。此外,它还包含有关安装过程本身的信息:如安装序列、目标文件夹路径、系统依赖项、安装选项和控制安装过程的属性。

2.msi的优势
windows installer技术就是合并在一起发挥作用的两个部分:客户端安装程序服务(msiexec.exe) 和microsoft软件安装(msi)软件包文件。

msiexec.exe 程序是 windows installer 的一个组件。 当 msiexec.exe 被安装程序调用时,它将用 msi.dll 读取软件包文件 (.msi)、应用转换文件 (.mst) 并合并由安装程序提供的命令行选项。 windows installer 执行所有与安装有关的任务:包括将文件复制到硬盘、修改注册表、创建桌面快捷方式、必要时显示提示对话框以便用户输入安装首选项。


当双击msi文件的时候,与之关联的windows installer 的一个文件msiexec.exe 被调用,它将用msi.dll读取软件包文件(.msi)、应用转换文件(.mst)进行进一步处理,然后 windows installer 执行所有与安装有关的任务:包括将文件复制到硬盘、修改注册表、创建桌面快捷方式,必要时显示提示对话框以便用户输入安装需要的信息,就这样,一个程序安装到了你的电脑上。
采用msi安装的优势在于你可以随时彻底删除它们,更改安装选项,即使安装中途出现意想不到的错误,一样可以安全地恢复到以前的状态,正是凭着此强大功能,越来越多的软件开始使用msi作为发行的方式了。 如果你对msi文件感兴趣,可以用winrar等压缩软件打开,看一下里面的内容,满足一下好奇心。

3、msi格式文件安装支持程序:winme和winxp对msi支持得很好,但其他版本的windows就需要安装一个插件才能使用msi格式的文件。



windowsinstaller/install/2.0/nt45/en-us/instmsiw.exe" target=_blank>点这里下载instmsiw插件

二、定制自己的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文件了。
(出处:热点网络)
打印本文   加入收藏   返回顶部   关闭窗口Tags:鲜为|为人|人知|知  

网站: http://www.hnygpx.net 报名电话:0731-5579057   13807313137 报名信箱: yp5579@263.net 咨询QQ: 361928696,873219118 

校址:湖南省长沙市雨花区红花坡路176号(正圆厂内)。 来校路线:长沙火车站售票处后坪乘135路至"鼓风站"下车,回走100米即到

电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校
中山市,固原市,银川市,玉树,海东,陇南市,酒泉市,张掖市,天水市,金昌市,兰州市,榆林市,延安市,渭南市,铜川市,阿里,山南,拉萨市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,毕节,铜仁,遵义市,贵阳市,甘孜州,资阳市,达州市,宜宾市,南充市,遂宁市,绵阳市,泸州市,自贡市,三亚市,崇左市,河池市,玉林市,钦州市,梧州市,柳州市,梅州市,肇庆市,湛江市,佛山市,珠海市,韶关市,湘西州,怀化市,郴州市,张家界市,邵阳市,株洲市,仙桃市,随州市,荆州市,荆门市,襄樊市,黄石市,驻马店市,信阳市,南阳市,漯河市,中卫市,石嘴山市,海西,海南藏州,黄南州,海北,甘南,庆阳市,平凉市,武威市,白银市,嘉峪关市,安康市,汉中市,咸阳市,宝鸡市,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧市,丽江市,保山市,曲靖市,黔东州,黔西州,安顺市,六盘水市,凉山州,阿坝州,雅安市,广安市,眉山市,内江市,广元市,德阳市,攀枝花市,成都市,海口市,来宾市,百色市,贵港市,北海市,桂林市,南宁市,云浮市,揭阳市,潮州市,清远市,阳江市,汕尾市,惠州市,茂名市,江门市,汕头市,深圳市,广州市,娄底市,永州市,益阳市,岳阳市,湘潭市,长沙市,恩施州,黄冈市,孝感市,鄂州市,十堰市,武汉市,周口市,商丘市,三门峡市,许昌市,焦作市,安阳市,鹤壁市,平顶山市,开封市,郑州市,聊城市,滨州市,德州市,莱芜市,日照市,泰安市,烟台市,潍坊市,东营市,淄博市,上饶市,济南市,抚州市,宜春市,赣州市,新余市,九江市,景德镇市,宁德市,南平市,泉州市,莆田市,厦门市,宣城市,亳州市,六安市,宿州市,黄山市,滁州市,安庆市,淮北市,马鞍山市,蚌埠市,芜湖市,合肥市,丽水市,舟山市,衢州市,金华市,湖州市,嘉兴市,宁波市,宿迁市,镇江市,盐城市,连云港市,苏州市,徐州市,南京市,绥化市,牡丹江市,佳木斯市,大庆市,鹤岗市,哈尔滨市,白城市,白山市,辽源市,吉林市,葫芦岛市,铁岭市,盘锦市,阜新市,锦州市,本溪市,鞍山市,沈阳市,锡林郭勒盟,通辽市,乌海市,吕梁市,忻州市,晋中市,晋城市,阳泉市,太原市,廊坊市,承德市,保定市,邯郸市,唐山市,宁夏,甘肃省,西藏,贵州省,重庆市,广西,湖南省,河南省,江西省,安徽省,江苏省,黑龙江省,辽宁省,山西省,天津市,四平市,内蒙古,吴忠市,果洛,西宁市,定西市,商洛市,西安市,那曲,黔南州,巴中市,乐山市,贺州市,防城港市,东莞市,河源市,常德市,衡阳市,咸宁市,宜昌市,濮阳市,新乡市,洛阳市,菏泽市,临沂市,威海市,济宁市,枣庄市,青岛市,吉安市,鹰潭市,萍乡市,南昌市,龙岩市,漳州市,三明市,福州市,池州市,巢湖市,阜阳市,铜陵市,淮南市,台州市,绍兴市,温州市,杭州市,泰州市,扬州市,淮安市,南通市,常州市,无锡市,大兴安岭,黑河市,七台河市,伊春市,双鸭山市,鸡西市,齐齐哈尔市,延边,松原市,通化市,长春市,朝阳市,辽阳市,营口市,丹东市,抚顺市,大连市,阿拉善盟,兴安盟,乌兰察布市,巴彦淖尔市,呼伦贝尔市,鄂尔多斯市,赤峰市,包头市,呼和浩特市,临汾市,运城市,朔州市,长治市,大同市,衡水市,沧州市,张家口市,邢台市,秦皇岛市,石家庄市,青海省,陕西省,云南省,四川省,海南省,广东省,湖北省,山东省,福建省,浙江省,上海市,吉林省,河北省,北京市