2016-10-19 23 views
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 

事前にありがとうございます。

+0

[エラーコードを無視](http://helpnet.flexerasoftware.com/isxhelp22/helplibrary/CA_Settings-VBS.htm#ref-views_2820697808_1095910)の項目については言及していません。それはおそらく間違っています。 –

+0

このオプションは通常「返品処理中」にあります。現在は「同期(チェック終了コードを確認)」に設定され、「同期(終了コードは無視)」に設定されています。 –

答えて

0

あなたはバイナリ表

あなたは、単一の機能全体ではなく、スクリプトの実行を強制することができるでしょうそのように格納されたアクションの種類を選択する必要があります。

関連する問題