首页 > 代码库 > .NET vs installer安装项目失败汇总
.NET vs installer安装项目失败汇总
1. 提交阶段,使用vbs调用mysql-connector-net-6.6.5.msi报错
vbs 脚本如下:
Dim ret Set WshShell = WScript.CreateObject("WScript.Shell") ret = WshShell.Run("msiexec /i mysql-connector-net-6.6.5.msi")
解决方案:
打开 %temp% 目录,查看文件名以msi开头.log结尾的安装错误日志文件(随机名称,如MSIeb1c8.LOG) ...win7默认就会生成该文件,xp下据说需要设置点击打开链接
然后把上述代码WScript.CreateObject....的WScript删掉
Dim ret Set WshShell = CreateObject("WScript.Shell") ret = WshShell.Run("msiexec /i mysql-connector-net-6.6.5.msi")
2. 安装项目中的生成或提交阶段 执行以下vbs, wshShell.Run strCmd死活执行不成功...原因可能是虽然install.exe和mysql-connector-net-6.6.5.msi文件已经拷贝到安装目录了,但是这种状态还未提交,因此脚本还是找不到这两个文件
Dim wshShell,strPath, strPathTarget, strCmd, fso 'On error resume next Set wshShell = CreateObject("Wscript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") strPath = Session.Property("CustomActionData") &"install.exe" (install.exe即msiexec.exe) strPathTarget = Session.Property("CustomActionData") &"mysql-connector-net-6.6.5.msi" '这几个引号那是相当烦,就是把整个语句包在一对引号中 strCmd = """"& strPath &" /i "& strPathTarget &"""" msgbox strCmd wshShell.Run strCmd ‘如果脚本改以下,文件路径存在,则安装包安装成功。 wshShell.Run "E:\workstation\install.exe /i E:\workstation\mysql-connector-net-6.6.5.msi"
3. 变通的方法,把mysql-connector-net-6.6.5.msi拷贝到setup.exe/安装包目录下,就不打包到安装包里面了,用户执行安装包时,通过OriginalDataBase获取安装包路径,从而找出mysql-connector的绝对路径,然后执行之,WIN7下测试通过
Dim wshShell,strSetupMsiPath, strDir, strExecPath, strExecTarget, strCmd, fso 'On error resume next Set wshShell = CreateObject("Wscript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") 'CustomActionData is [OriginalDatabase] strSetupMsiPath = Session.Property("CustomActionData") strDir = GetDir(strSetupMsiPath, "MealBookerSetup.msi") strExecPath = strDir &"install.exe" strExecTarget = strDir &"mysql-connector-net-6.6.5.msi" strCmd = strExecPath &" /i "& strExecTarget (strCmd本身就是string,故代码段2中这部分也是有问题的,应把两边的双引号去掉) msgbox strCmd wshShell.Run strCmd 'wshShell.Run "msiexec.exe /i D:\Program Files\MealBooker\mysql-connector-net-6.6.5.msi" Private Function GetDir(fullpath, filename) dim pos pos = 0 pos = instr(fullpath, filename) if pos>0 then GetDir = left(fullpath, pos - 1) else GetDir = "" end if End Function
参考资料
.NET vs installer安装项目失败汇总
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。