none
Installation des SQL Servers 2017 Express mit Inno Installer RRS feed

  • Frage

  • Hallo Zusammen,

    ich versuche den SQL Server Express 2017 in einem Inno Installer Wizard zu installieren.
    Die Installations-Dateien habe bereits entpackt in den Installer integriert.

    Daher verwende ich folgenden Aufruf:
    setup.exe /ACTION=Install /Q /SKIPRULES=RebootRequiredCheck /SUPPRESSPRIVACYSTATEMENTNOTICE=1 /IAcceptSQLServerLicenseTerms=1 /ConfigurationFile=ConfigurationFileExpr.ini

    Zuerst wird das .Net-Framework installiert.
    Wenn er zum eigentlichen SQL Server kommt, wird folgender Fehler ausgegeben:

     Method not found: 'Void Microsoft.SqlServer.Chainer.Infrastructure.RoleService.Initialize(Microsoft.SQL.Chainer.Product.RolesType)'.

    Der komplette summary.txt sieht wie folgt aus:

    Overall summary:
      Final result:                  Failed: see details below
      Exit code (Decimal):           -2146233069
      Exit facility code:            19
      Exit error code:               5395
      Exit message:                  Method not found: 'Void Microsoft.SqlServer.Chainer.Infrastructure.RoleService.Initialize(Microsoft.SQL.Chainer.Product.RolesType)'.
      Start time:                    2018-05-24 02:32:03
      End time:                      2018-05-24 02:32:42
      Requested action:              None
      Exception help link:           https://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=14.0.1000.169&EvtType=0x4EF7D99A%400x727A9944&EvtType=0x4EF7D99A%400x727A9944
    
    Machine Properties:
      Machine name:                  HB-INSTALLER
      Machine processor count:       1
      OS version:                    Microsoft Windows 10 Enterprise (10.0.17134)
      OS service pack:               
      OS region:                     Austria
      OS language:                   English (United States)
      OS architecture:               x64
      Process architecture:          64 Bit
      OS clustered:                  No
    
    Package properties:
      Description:                   Microsoft SQL Server 2017 
      ProductName:                   SQL Server 2017
      Type:                          RTM
      Version:                       14
      SPLevel:                       0
      Installation edition:          
    
    User Input Settings:
      ACTION:                        None
      CONFIGURATIONFILE:             
      ENU:                           false
      HELP:                          false
      IACCEPTPYTHONLICENSETERMS:     false
      IACCEPTROPENLICENSETERMS:      false
      INDICATEPROGRESS:              false
      MRCACHEDIRECTORY:              <empty>
      QUIET:                         false
      QUIETSIMPLE:                   false
      SUPPRESSPRIVACYSTATEMENTNOTICE: false
      UIMODE:                        Normal
      X86:                           false
    
      Configuration file:            C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\20180524_023114\ConfigurationFile.ini
    
    Rules with failures:
    
    Global rules:
    
    There are no scenario-specific rules.
    
    Rules report file:               The rule result report file is not available.
    
    Exception summary:
    The following is an exception stack listing the exceptions in outermost to innermost order
    Inner exceptions are being indented
    
    Exception type: System.MissingMethodException
        Message: 
            Method not found: 'Void Microsoft.SqlServer.Chainer.Infrastructure.RoleService.Initialize(Microsoft.SQL.Chainer.Product.RolesType)'.
        HResult : 0x80131513
        Data: 
          DisableWatson = true
        Stack: 
            at Microsoft.SqlServer.Configuration.BootstrapExtension.InitializeRoleServiceAction.ExecuteAction(String actionId)
            at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
            at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.<>c__DisplayClasse.<ExecuteActionWithRetryHelper>b__b()
            at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(ActionWorker workerDelegate)
    

    Hat irgendjemand was diese Fehlermeldung aussagt, beziehungsweise was man dagegen tun kann?

    Danke für eure Hilfe.

    Dienstag, 29. Mai 2018 09:53

Alle Antworten

  • Du solltest schauen, welche Aufrufoptionen der Original-Installer des SQL-Express hat (kann man meist per /?-Aufruf schauen) und diesen dann mit dem Parameter für Silent-Installation aufrufen.

    https://docs.microsoft.com/de-de/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt?view=sql-server-2017

    "Wenn Sie über die Eingabeaufforderung installieren, unterstützt SQL Server mithilfe des /Q-Parameters den vollständigen stillen Modus oder mithilfe des /QS-Parameters den einfachen stillen Modus. Mithilfe des /QS-Schalters wird nur der Fortschritt angezeigt, es sind jedoch keine Eingaben möglich. Außerdem werden beim Auftreten von Fehlern keine Fehlermeldungen angezeigt. Der /QS-Parameter wird nur unterstützt, wenn /Action=install angegeben wurde."

    In Installer-Paketen werden schließlich nicht nur die Objekte sondern auch weitere Anweisungen wie Registry-Entries, COM-Registrierung usw. abgelegt.

    Dienstag, 29. Mai 2018 11:07
  • Ich denke, dass ich keine Probleme mit den Parametern habe.
    Wenn ich den Server mit denselben Parametern auf der cmd-Konsole aufrufe/installiere gibt es keine Probleme.
    Daher vermute ich, dass der Inno-Installer irgendwelche Rechte nicht hat hat oder vielleicht die path-Variable oder die Registry nicht (komplett) ausgewertet wird.

    Was mich interessieren würde, wäre:

    In welchen Fällen tritt dieser spezielle Fehler auf?

    Dummerweise gibt es im Internet keine Hinweise darauf.
    Die einzigen Hinweise zielen darauf ab, dass die dll fehlt.

    Aber das kann eigentlich nicht sein, da es auf der Konsole funktioniert.

    Recht vielen Dank, dass sie sich Zeit genommen haben, mein Problem zu analysieren.


    Mittwoch, 30. Mai 2018 06:03
  • Was hindert dich daran, den SQL-Installer komplett einzubinden und mit der "/q"-Option aufzurufen?
    Bevor ich mir die Mühe mache und mich damit stunden- oder tagelang aufhalte wähle ich doch lieber die einfache Alternative.

    Mittwoch, 30. Mai 2018 07:49
  • Ich verstehe deinen Hinweis nicht ganz.

    Ich inkludiere den Installer komplett in meinen InnoInstaller und rufe ihn mit der /Q Option auf.

    siehe oben:
    setup.exe /ACTION=Install /Q /SKIPRULES=RebootRequiredCheck /SUPPRESSPRIVACYSTATEMENTNOTICE=1 /IAcceptSQLServerLicenseTerms=1 /ConfigurationFile=ConfigurationFileExpr.ini

    Was genau meinst du denn?
    Meinst du, dass es einen Unterschied macht, ob ich den SQLServer-Installer schon vorher entpacke?

    Mittwoch, 30. Mai 2018 11:33
  • Du schreibst "Die Installations-Dateien habe bereits entpackt in den Installer integriert."

    Daher nehme ich an, dass du den SQL-Installer entpackt hast denn der Originalsetup heißt ja

    "SQLServer2017-SSEI-Expr.exe"

    Also binde diese Datei in deinen Installer ein und rufe diese dann mit den Parametern auf.

    Mittwoch, 30. Mai 2018 12:10
  • Das habe ich bereits früher gemacht. Und der Fehler war leider derselbe.

    Freitag, 1. Juni 2018 05:29
  • Dann stimmt für Express wohl die Configurationfile nicht.

    Die Exception oben deutet darauf hin, dass eine Assembly entweder nicht vorhanden ist oder nicht in der passenden Version vorliegt. Dies erledigt normalerweise der Installer selber durch Überprüfung der Vorabanforderungen mit entsprechendem Download der fehlenden Komponenten.

    https://docs.microsoft.com/de-de/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt?view=sql-server-2017

    Vorgehen zum Erstellen der Config:

    https://docs.microsoft.com/de-de/sql/database-engine/install-windows/install-sql-server-using-a-configuration-file?view=sql-server-2017

    Freitag, 1. Juni 2018 07:27