Fragensteller
Installation des SQL Servers 2017 Express mit Inno Installer

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.iniZuerst 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.
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.
-
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.
-
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? -
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.
-
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