2011年(455)
分类: Delphi
2011-04-24 01:12:26
作者名字不记得了,年代有点远,前些日子一朋友问我,我在硬盘里面找出来的
方法一:
卸载,重新安装windows installer服务
一、先用msiexec /unregserver 停掉windows installer服务。
二、下载InstMsiW.exe,用winrar解压开。进入目录。
三、右击msi.inf ,点击安装,右击mspatcha.inf ,点击安装。
四、再用msiexec.exe /regserver 启用服务。
方法二:
1.如果曾安装过ACDSee5.0(包括迷你中文版),卸载它。如果还不行就重装Windows
Installer 或者ACDSee 4.0
2.运行cmd,然后运行sfc/scannow检查系统文件
3.运行Services.msc,把Windows Installer 服务设置为手动运行,然后重新运行
4.打开任务管理器,找到并结束ikernel.exe进程,重新安装
5.禁用杀毒软件的实时防护
6.删除 C:Program FilesCommon FilesInstallShieldEngine6Intel 32这个文
件夹中的所有文件,然后重启动电脑,重新运行安装程序
或者查看下面的网页:
安装程序安装出错解决方法之葵花宝典 moonet(翻译)
/develop/article/18/18184.shtm
方法三:
这是由于一些软件制作的问题导致windows installer不能正常工作
恢复步骤如下:
1.再次安装windows installer2.0,运行instmsiw.exe
如果说"服务已经安装"然后直接退出安装就再跟着做,否则你重装就OK了!
2.删除注册表中的[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer]
然后运行instmsiw.exe
3.绝招:
(1) 删除msiserver 服务
运行regedit,删除下面的MSIServer 服务
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer]
把下面的内容存为unmsiserver.reg 文件,然后双击左键,把它合并进注册表中
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;unmsiserver.reg
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(2) 删除msi 的文件
用下面的脚本存为一个unmsi.inf文件,然后在inf文件上右键单击install,就会删除一些msi的dll,这时windows 的 sfc机制可能警告一些系统文件被修改要求插入win2k的光盘,不理睬它。这个脚本是我从instmsiw.exe中修改得来的。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;unmsi.inf
;;;;;;;;;;;;;;;;;
[Version]
signature = "$Windows NT$"
Class = %ExceptionClassDesc%
ClassGUID = {F5776D81-AE53-4935-8E84-B0B283D8BCEF}
Provider = %Microsoft%
CatalogFile = msi.cat
ComponentId = {2E742517-5D48-4DBD-BF93-48FDCF36E634} ; GUID assigned to the Windows Installer
DriverVer=03-13-2001, 2.0.2460.1
[SourceDisksNames]
1 = %msi_media%
[SourceDisksFiles]
msi.dll = 1
msihnd.dll = 1
msimsg.dll = 1
msiexec.exe = 1
msisip.dll = 1
[DestinationDirs]
Msi.SystemFiles = 11 ; %windir%system32
Msi.DllCacheFiles = 11,dllcache ; %windir%system32dllcache
[DefaultInstall]
DelFiles = Msi.SystemFiles,Msi.DllCacheFiles
;
; COPYFLG_REPLACE_BOOT_FILE flag (0x1000) not necessary for
; files in the dllcache
;
[Msi.DllCacheFiles]
msi.dll
msihnd.dll
msimsg.dll
msiexec.exe
msisip.dll
[Msi.SystemFiles]
msi.dll
msihnd.dll
msimsg.dll
msiexec.exe
msisip.dll
[Strings]
Microsoft = "Microsoft Corporation"
msi_media = "Microsoft Windows Installer Distribution Media"
ExceptionClassDesc = "Microsoft Windows Installer"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(3) 重新启动,按F8键,进入带命令行的安全模式,执行下面的命令
regsvr32 /u %windir%msi.dll
del %windir%msi.dll
(4) 重启动,运行instmsiw.exe,安装windows installer2.0 ,一切正常了。