Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Batch-Datei per CA nach dem Setup ausführen


10 replies to this topic

Majue

Majue
  • Full Members
  • 185 posts

Posted 27 November 2017 - 13:54

Hallo,

 

im Rahmen eines Setup soll Microsoft SQL Server 2014 Express mit installiert werden. Am besten wäre es, wenn der SQL-Server bereits vor dem Ausführen von SQL-Scripten installiert werden könnte, aber dabei gab es in der Vergangenheit immer Probleme, da das SQL-Setup nicht während des Haupt-Setups ausgeführt werden konnten.

 

Damit ich nicht unnötig viele Setups bereitstellen muss (eines für 32 Bit und eines für 64 Bit ist sowieso unerlässlich), soll der Aufruf des SQL Server-Setup entweder per Batch-Datei oder direkt per CA erfolgen. So kann ich die entsprechenden Parameter mitgeben, damit der SQL Server ohne Eingriff des Anwenders installiert wird, bzw. eine vorhandene ältere Version aktualisiert werden kann.

 

Aufruf Intallation:

"#Pfad#SQLEXPRADV_x64_DEU.exe" /ACTION=Install /IACCEPTSQLSERVERLICENSETERMS /QS /HIDECONSOLE /UpdateEnabled=true /FEATURES=SQLENGINE,FullText,SSMS,SNAC_SDK /INSTANCENAME="Instanz1" /BROWSERSVCSTARTUPTYPE=Automatic /SAPWD=Passwort1 /SECURITYMODE=SQL /SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" /TCPENABLED=1

 

Aufruf Upgrade:

"#Pfad#SQLEXPRADV_x64_DEU.exe" /ACTION=Upgrade /IACCEPTSQLSERVERLICENSETERMS /QS /HIDECONSOLE /UpdateEnabled=true /FEATURES=SQLENGINE,FullText,SSMS,SNAC_SDK /INSTANCEID=Instanz1 /INSTANCENAME=Instanz1

 

Der String #Pfad# soll vorher per Text File Changes angepasst werden (das funktioniert auch einwandfrei).

 

Wie löse ich das am besten? Bisher ist es mir nicht gelungen, die CA aus dem Setup heraus zu starten. Ich hoffe, ihr könnt mir weiterhelfen.


Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 27 November 2017 - 14:21

Hallo,

wir installieren auch den SQL Server.
Dies geschieht durch Ausführen von InstallScript in einer CustomAction:
 

  szParameter = /qs /SkipInstallerRunCheck /ACTION=Install usw. usw.
  LaunchAppAndWait(szTempFolder ^ szProductCode ^ szSQLSetupEXE,szParameter,WAIT);

 

 

 

 

Die CA führen wir noch im "UserInterface"  sofort nach den Dialogen ("InstallWelcome, SetupProgress" ) aus.

 

Damit das SQL Setup auch läuft, mussten wir den Paramerter  /SkipInstallerRunCheck mit als Commandline übergeben.

#Pfad#SQLEXPRADV_x64_DEU.exe" /SkipInstallerRunCheck  /ACTION=Install /IACCEPTSQLSERVERLICENSETERMS /QS /HIDECONSOLE /UpdateEnabled=true /FEATURES=SQLENGINE,FullText,SSMS,SNAC_SDK /INSTANCENAME="Instanz1" /BROWSERSVCSTARTUPTYPE=Automatic /SAPWD=Passwort1 /SECURITYMODE=SQL /SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" /TCPENABLED=1

 

Ohne /SkipInstallerRunCheck blieb das SQL Server Setup irgendwo stehen.

 

MfG

  Dietmar


Edited by Spitfyr, 27 November 2017 - 14:22.


Majue

Majue
  • Full Members
  • 185 posts

Posted 27 November 2017 - 15:09

@spitfyr

 

Danke für den Tipp, das werde ich gleich mal ausprobieren. Den Parameter SkipInstallerRunCheck habe ich bisher noch nicht gekannt und auch nicht auf der Microsoft-Seite mit den Commandline-Parametern gesehen.

 

Außer über ein Script müsste sich das Setup doch auch per CA starten lassen. Ich habe mal eine testweise erstellt:

 

CA_MSSQL.png

 

Ist das so korrekt? Wann müsste die CA denn bei "Install Exec Sequence" ausgeführt werden, damit sie an der richtigen Stelle vor den SQL-Scripten ausgeführt wird?


Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Majue

Majue
  • Full Members
  • 185 posts

Posted 28 November 2017 - 09:38

Leider will die CA nicht starten, wenn ich sie nach "SetupProgress" einbaue. Was mache ich denn falsch? Ich hoffe, ihr könnt mir weiterhelfen, es kann doch nicht so schwer sein, ein Setup aus einem anderen Setup heraus zu starten! :(


Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 November 2017 - 10:54

Also Spitfyr führt das SQL Setup in der UI Sequenz aus. Ich nicht sicher, ob es in der Execute Sequenz überhaupt möglich ist (zwei MSI Execute Sequenzen gleichzeitig sind nicht möglich). In der UI Sequenz ist natürlich auch problematisch, weil sie bei einer Silent Installation komplett übersprungen wird. Besser wäre eine "Prerequisite" die von der setup.exe vor dem MSI Setup aufgerufen wird, oder eine Feasture-abhängige Prerequisite, die anschließend läuft.

 

Was deine Custom Action betrifft: Du willst eine exe ausführen, die vom Setup installiert wird. Dann muss die Custom Action "deferred" sein, weil "immediate" vor dem Kopiervorgang läuft. Außerdem soltlest du den Exit Code ignorieren, denn alles andere als 0 wird von MSI als Fehler interpretiert und führt zum Abbruch der Installation.



Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 08 December 2017 - 15:09

Hi

wir rufen die CA (die wiederum ein Script ausführt) auch nach "Setup Progress" auf.

In der Execute Sequenz hat es auch nicht geklappt.

 

Ich wollte hier einen Screenshot einfügen ,aber mir fehlen dazu anscheinend die Recht.....

 

Eine Silent Installation gibt es bei uns nicht wenn der SQL server installiert wird, weil der anwender in diesem fall auch noch was eingeben muss.



Majue

Majue
  • Full Members
  • 185 posts

Posted 12 December 2017 - 15:31

Leider ist das ganze noch nicht zufriedenstellend gelöst. Vielleicht beschreibe ich einfach noch einmal die Aufgabenstellung, um Hilfe zur Lösung zu erhalten:

 

  • Per Setup soll zunächst der SQL Server 2010 Express installiert werden
    • wenn bereits unsere Instanz vom SQL Server 2012 Express vorhanden ist, soll der SQL Server 2014 Express nicht installiert werden (funktioniert bereits)
    • wenn zuvor unsere Instanz vom SQL Server 2005 Express vorhanden ist, soll der SQL Server 2014 Express als Upgrade ausgeführt werden (funktioniert noch nicht)
    • wenn unsere Instanz nicht vorhanden ist, soll der SQL Server 2014 Express installiert werden (funktioniert noch nicht)
  • Anschließend soll ein SQL Script ausgeführt werden
    • wenn unsere Datenbank bereits vorhanden ist, soll ein Update erfolgen (funktioniert bereits)
    • wenn unsere Datenbank nicht vorhanden ist, soll sie hinzugefügt werden (funktioniert bereits)
  • Zum Abschluss soll das Hauptprogramm installiert und gestartet werden (funktioniert bereits)

 

Die Herausforderung ist zum einen, dass alle Schritte in der richtigen Reihenfolge ausgeführt werden. Außerdem möchte ich das Setup vom SQL Server 2014 Express nicht mehrmals hinzufügen müssen, da es doch recht groß ist und sich auch noch für 32- und 64-Bit unterscheidet. Es soll daher nur mit unterschiedlichen Parametern gestartet werden. Somit ist es vermutlich nicht per Prerequisite möglich, da ich dann vier Pakete einpacken müsste.

 

Von mir aus kann das Setup dann auch aus mehreren Teil-Setups bestehen, die nacheinander automatisch ausgeführt werden. Das hätte sogar den Vorteil, dass das Setup für das Hauptprogramm nur einmal erstellt werden müsste und von den unterschiedlichen SQL Server 2014 Setups gestartet würde.

 

Ich hoffe, ihr könnt mir Tipps für eine möglichst sinnvolle Lösung geben.


Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 14 December 2017 - 20:31

Vielleicht wäre es am besten, für den "äußeren" Teil (die SQL Geschichten) ein Suite Project oder InstallScript Projekt zu erstellen, dass dann die msi für's Hauptprogramm aufruft?



Majue

Majue
  • Full Members
  • 185 posts

Posted 03 January 2018 - 08:24

Vielen Dank für den Tipp. Mit einem Suite-Project habe ich mich bisher nicht beschäftigt. Gibt es dabei etwas besonderes zu beachten?


Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Majue

Majue
  • Full Members
  • 185 posts

Posted 03 January 2018 - 12:33

Schade, die Möglichkeit, mehrere MSI-Dateien in ein Suite-Projekt einzubinden, gibt es nicht in der Professional-Version. In einem Advanced-Projekt kann ich nur jeweils eine MSI-Datei aufnehmen, oder sehe ich das falsch?


Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 04 January 2018 - 10:44

Das ist korrekt. In Professional kann man nur den "Advanced UI" Teil verwenden, der einem bei der Benutzeroberfläche mehr Möglichkeiten bietet als die Standard MSI Dialoge. Die "Suite" Funktionalität um mehrere Setups unter einem Dach zusammenzufassen ist ein Feature der Premier Edition.