2016-10-19 2 views
0

ich bauen einen Installer mit Install 2016.Install VBscribt Exitcode nicht deinstallieren Abbruchs

ich ein VB-Skript (in einer benutzerdefinierten Aktion ausgeführt wird), der überprüft, ob eine Datenbank leer ist, und wenn es ist, kann die Deinstallation nehmen setzt.

Die Einstellungen der benutzerdefinierten Aktion sind:

  • Return Verarbeitung: Synchrone (Exit-Code überprüfen)
  • In-Skript Ausführung: Sofortige Ausführung
  • Scheduling Execution: Immer Ausführen
  • Exec installieren Sequenz: Nach InstallValidate
  • Install Exec Bedingung: REMOVE = "ALL"

Die benutzerdefinierte Aktion mit dem Skript ausgeführt wird und das Meldungsfeld angezeigt wird, aber das Installationsprogramm ignoriert den Exit-Code = 3.

Der VB-Skript:

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 

Vielen Dank im Voraus.

+0

Sie haben Ihre Auswahl [Fehlercode ignorieren] (http://helpnet.flexerasoftware.com/isxhelp22/helplibrary/CA_Settings-VBS.htm#ref-views_2820697808_1095910) nicht erwähnt. Also ist es wahrscheinlich falsch. –

+0

Diese Option befindet sich normalerweise in der "Rücksprungverarbeitung". Jetzt ist es auf "Synchron (Exit-Code prüfen) gesetzt. Die andere Option ist" Synchron (Exit-Code ignorieren). –

Antwort

0

benötigen Sie den Aktionstyp in Binary Tabelle gespeichert wählen

auf diese Weise Sie die Ausführung einer einzigen Funktion zu zwingen, in der Lage zu werden, anstatt das gesamte Skript.