0
を中断ない私は、データベースが空で、それがあるときに、アンインストールが取ることができるかどうかをチェック(カスタムアクションで実行されている)VBスクリプトを持っているのInstallShield 2016年InstallshieldのVBscribt終了コードは、アンインストール
を使用してインストーラを構築しています場所。
カスタムアクションの設定は次のとおりです。
- 戻り処理:同期(終了コードを確認してください)
- で、スクリプトの実行:即時実行
- 実行スケジュール:常にExecをインストール
- を実行しますシーケンス:InstallValidate後
- 実行条件:REMOVE = "ALL"
スクリプトを使用して、カスタムアクションは、VBスクリプトを実行し、メッセージボックスが表示されますが、インストーラは終了コード= 3
を無視します:
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
事前にありがとうございます。
[エラーコードを無視](http://helpnet.flexerasoftware.com/isxhelp22/helplibrary/CA_Settings-VBS.htm#ref-views_2820697808_1095910)の項目については言及していません。それはおそらく間違っています。 –
このオプションは通常「返品処理中」にあります。現在は「同期(チェック終了コードを確認)」に設定され、「同期(終了コードは無視)」に設定されています。 –