我使用installshield 2016构建了一个安装程序。
我有一个VB脚本(在自定义操作中运行),用于检查数据库是否为空,如果是,则可以进行卸载。
自定义操作的设置为:
运行脚本的自定义操作并显示消息框,但安装程序忽略Exitcode = 3.
VB脚本:
Function CheckService()
On Error Resume Next
Set objConnection = CreateObject("ADODB.Connection")
DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=localhost;Trusted_Connection=Yes;"
objConnection.Open DB_CONNECT_STRING
set rs = objConnection.Execute("SELECT COUNT(*) as cnt FROM master.dbo.sysdatabases WHERE name = 'MonitoringConfiguration'")
if not rs.EOF then
recordsCount = cint(rs("cnt"))
end if
objConnection.Close
if recordsCount = 0 then
CheckService = 1
Exit Function
end if
DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=localhost;Initial Catalog=MonitoringConfiguration;Trusted_Connection=Yes;"
objConnection.Open DB_CONNECT_STRING
set rs = objConnection.Execute("SELECT COUNT(*) as cnt from ServerSettings")
if not rs.EOF then
recordsCount = cint(rs("cnt"))
end if
objConnection.Close
if recordsCount <> 0 then
x=MsgBox("There are still monitoring services deployed. Please remove them first before remvoing System Monitoring",0,"Unable to Uninstall application")
CheckService = 3
Exit Function
else
CheckService = 1
Exit Function
end if
End Function
提前谢谢你。