日期:2014-05-18  浏览次数:20763 次

如何让下载的CAB文件中的msi程序能安装成功
现在网站要用到一个activex控件,于是用C#做了一个,打包生成了一个setup.exe和setup.msi文件
直接执行msi文件,能够安装成功,并且在IE上也能正确调用

现在是希望在用户没有安装时,自动从网上下载并且执行安装程序

所以就做按照网上的制作方法,制作了一个cab文件
里面包含一个setup.exe和setup.msi文件还有一个install.inf
install.inf
的内容

[version]  
signature="$CHICAGO$"  
AdvancedINF=2.0  
[Setup Hooks]  
hook1=hook1
[hook1]  
run=msiexec.exe /i "%EXTRACT_DIR%/setup.msi" /qn
  

然后再需要调用下载的网页上
<object id="test" classid="clsid:1213-123-123-1123-123" 
  width="0px" height="0px"
  codebase="../setup.cab"
  visible="false"
  >
打开页面后
setup.cab自动下载了,并且也执行了安装程序,但是进行安装时报错
Error reading from file
C:\Doc..\admin..\Locals\Tmp\ICD11.tmp\Setup.msi
Verify that the file exists and that you can access it.

但是自己双击setup.cab文件直接执行里面的安装文件又是可以安装成功的。。

这是否和IE安装的权限有关,有没有什么解决办法呢?
求各位大侠指点!!!


------解决方案--------------------
支持 楼上说法 
1,要么直接指向服务器上,安装包所在的位置
是否我直接指向网站目录下的安装程序?
2,要么存入cash,从cash中调