当前位置:  开发笔记 > 后端 > 正文

从Windows Installer自定义操作执行脚本文件

如何解决《从WindowsInstaller自定义操作执行脚本文件》经验,为你挑选了1个好方法。

我需要在Windows安装程序项目(标准OOTB VS 2008安装程序项目-vdproj)中执行批处理文件作为卸载过程的一部分.无法直接从安装程序项目中的自定义操作执行bat文件,因此我编写了一个快速的vbs脚本来调用所需的bat文件.
vbs代码:

Set WshShell = WScript.CreateObject( "WScript.Shell" )
command = "uninstall-windows-serivce.bat"
msgbox command
WshShell.Run ("cmd /C " & """" & command & """")
Set WshShell = Nothing

当此脚本独立于卸载运行时,它可以完美地运行.但是,当作为卸载的一部分运行时,它不会执行bat文件(但会显示消息框,因此我知道调用了vbs文件).没有报告错误(至少我可以告诉).为什么此脚本不能作为"卸载自定义操作"的一部分工作



1> 小智..:

我遇到了同样的问题,问题是你不能在vbs文件中调用WScript - 你需要调用CreateObject

即.

Set WshShell = CreateObject( "WScript.Shell" )
command = "uninstall-windows-serivce.bat"
msgbox command
WshShell.Run ("cmd /C " & """" & command & """")
Set WshShell = Nothing


原因是,正如我昨天发现的那样,您的vbs文件不是由Windows Scripting Host托管,而是由MSI本身托管.因此,WMI API不可用.没有"WScript".虽然WScript似乎是可访问的(即"WScript.Shell"),但这只是一个命名空间而不是对象"WScript".
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有