AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Installationsformen von Delphi/Optimierung per Batch-Datei
Thema durchsuchen
Ansicht
Themen-Optionen

Installationsformen von Delphi/Optimierung per Batch-Datei

Ein Thema von jbg · begonnen am 17. Feb 2020 · letzter Beitrag vom 18. Okt 2023
Antwort Antwort
Seite 1 von 2  1 2      
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Installationsformen von Delphi/Optimierung per Batch-Datei

  Alt 17. Feb 2020, 23:38
Die Frage sei erlaubt, ob nicht alles was funktional über das simple RunImage bei D5 hinaus geht, wirklich gebraucht wird und wie schnell sich ein D10.3 auf Basis einer reinen Dateikopieraktion installieren ließe.
Also unser Delphi 2009 installiert sich in ca. 30 Sekunden ohne Delphi-Installer über eine selbst geschriebene install.bat. Danach noch eine "Delphi-Components" install.bat ausführen, die die IDE konfiguriert, alle Komponenten kompiliert und in der IDE registriert (ca. 40 Sekunden auf SSD).
Man hat somit in unter 2 Minuten eine vollständige Delphi 2009 Installation.

Bevor wir diese Batchdateien hatten, war man ein bis zwei Tage beschäftigt die Komponenten in der richtigen Reihenfolge zu installieren und ich war dann immer derjenige der das kaputtkonfigurierte Delphi wieder zum laufen bringen musste. Die Zeit spare ich mir.


Für neuer Delphi Versionen bräuchte man sicherlich um einiges länger, da die Gigabytes erstmal übers Netzwerk auf die Platte entpackt werden müssten. Aber den Installer würde es mit Sicherheit noch bei weitem schlagen.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: 25 Jahre Delphi

  Alt 18. Feb 2020, 05:04
Für neuer Delphi Versionen bräuchte man sicherlich um einiges länger, da die Gigabytes erstmal übers Netzwerk auf die Platte entpackt werden müssten. Aber den Installer würde es mit Sicherheit noch bei weitem schlagen.
Ich habe nicht unbedingt den Eindruck dass die aktuellen Delphi-Installer großartig komprimiert wären. Die installierten Dateien sind nur unwesentlich größer als der komplette Download. Womöglich enthält der Installer aber auch Teile, die bei meinen Pro-Installationen gar nicht entpackt werden. In dem Fall nenne ich diese Art Installer gerne "Einer für alles, alles für die Katz".

Wenn man sich anschaut, was ein installiertes Delphi eigentlich ist: Ein Teil im Programme-x86-Ordner, ein Teil im User-Ordner und ein Stückchen Registry. Kann man eigentlich gut per Batch installieren.

Insofern würde ich mir wünschen, Emba würde in den nächsten 25 Jahren wieder mehr Augenmerk auf den Installer und dessen Qualität legen.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: 25 Jahre Delphi

  Alt 18. Feb 2020, 08:00
Also unser Delphi 2009 installiert sich in ca. 30 Sekunden ohne Delphi-Installer über eine selbst geschriebene install.bat. Danach noch eine "Delphi-Components" install.bat ausführen, die die IDE konfiguriert, alle Komponenten kompiliert und in der IDE registriert (ca. 40 Sekunden auf SSD).
Solange der Server erreichbar ist, hatten wir mit dem aktuellen GetIt-Installer auch keine Probleme. Es dauert deutlich länger, klar, das dauerte glaube ich 10 Minuten oder so, aber das hängt ja auch vom Installationsumfang ab.

Aber das Installationsskript für alle Komponenten kann man wirklich nur jedem wärmstens empfehlen, ja. Das ist ja nicht besonders schwierig, nur etwas Aufwand, aber dafür läuft dann wirklich auf jedem Rechner alles gleich und ohne manuelles Zutun. Wobei ich vermute, dass du das Skript schöner gelöst hast als ich (ich schreibe einfach einiges vorkonfiguriert via Templates in die Registry).

Nur die JEDIs müssen bei uns vorher manuell mit dem Installer installiert werden. Wobei... da sollte sich doch ein "unattended" Schalter relativ einfach einbauen lassen... wir klicken ja eh nur durch ohne etwas zu ändern. Das habe ich mir gleich mal notiert, das schaue ich mal an, wenn ich die Zeit finde.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: 25 Jahre Delphi

  Alt 18. Feb 2020, 09:27
Ich habe nicht unbedingt den Eindruck dass die aktuellen Delphi-Installer großartig komprimiert wären. Die installierten Dateien sind nur unwesentlich größer als der komplette Download. Womöglich enthält der Installer aber auch Teile, die bei meinen Pro-Installationen gar nicht entpackt werden. In dem Fall nenne ich diese Art Installer gerne "Einer für alles, alles für die Katz".
Der Installer (also das ISO) enthält alle Dateien für die Architect-Version und auch alle Sprachen und ein paar zusätzliche Tools. Wenn Du also nicht die Architect-Version hast, ist das nicht verwunderlich.

Wenn man sich anschaut, was ein installiertes Delphi eigentlich ist: Ein Teil im Programme-x86-Ordner, ein Teil im User-Ordner und ein Stückchen Registry. Kann man eigentlich gut per Batch installieren.
Wenn die 7z-Dateien nicht password-geschützt wären, hätte ich das vielleicht schon mal implementiert. Vielleicht könnte man aber auch einfach eine installierte Version als Basis nehmen und diese clonen. Wenn ich mal igendwann viel Zeit habe ... (also niemals, denn immer dann, wenn man gerade Stunden damit verschwendet den Installer laufen zu lassen, hat man eigentlich gar keine Zeit).
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: 25 Jahre Delphi

  Alt 18. Feb 2020, 11:32
Zitat:
Danach noch eine "Delphi-Components" install.bat ausführen, die die IDE konfiguriert, alle Komponenten kompiliert und in der IDE registriert
Sowas interessiert mich. Wie sieht der Inhalt so einer BADatei aus?
Ich muss das immer manuell machen. Alle Komponenten bereinigen, kompilieren, installieren und meine exportierten Einstellungen importieren.
Ich habe Registry-Templates, in denen die Delphiversion ersetzt wird und die dann per reg importiert werden. Das könnte man natürlich auch mit einer kleinen Anwendung direkt machen.
So setze ich auch die Pfade, aber natürlich nur die Werte, die auch wichtig sind (Bibliothekspfad, ...).

Danach kann ich dann die Packages mit den gemeinsamen Units und Komponenten einfach mit msbuild erstellen. Installiert werden die Packages auch einfach per Registry.

Es gibt in den JEDI-Quelltexten auch direkte Möglichkeiten der Package-Installation, aber den Aufwand wollte ich nicht betreiben, auch wenn es schöner gewesen wäre...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: 25 Jahre Delphi

  Alt 18. Feb 2020, 17:11
Nur die JEDIs müssen bei uns vorher manuell mit dem Installer installiert werden.
Die habe ich in einem eigenen Package (zwei, da Designtime und Runtime getrennt sind) neu verpackt. Das reduziert die Anzahl der Packages die von der IDE geladen werden müssen, womit das Starten einen ticken schneller geht.

Natürlich musste man bei allen Komponenten die Packages einmalig entsprechend auswendig konfigurieren (z.B. gleiches BPL/DCP/DCU Ausgabeverzeichnis, $STRINGCHECKS OFF, ...). Das ist aber jetzt nur dann mit Aufwand verbunden, wenn mal wieder ein Komponenten-Update bevorsteht. Da wir aber Delphi 2009 nutzen, kommt das bei kommerziellen Komponenten selten bis gar nicht mehr vor. Und OpenSource Komponenten/Projekte sind meist einfacher einzubinden, da kein Installer erstmal alles "zerschießt".


Zusammengestrichen sieht die Batchdatei so aus (Kommentare, Echo, Error-Handling entfernt). Ist also nur ein einfacher MSBUILD Ausruf mit ein paar selbst geschrieben Tools, die die Registry und Environment.proj Datei aktualisieren.
Code:
msbuild /nologo /t:build /p:Config=Debug /p:ComponentGenPackage=true Components2009.groupproj

bin\ComponentInstaller Components2009.groupproj /RegisterDesignPackages /RegisterPaths

bin\ExpertInstaller.exe IDEPlugins\IDEFixPack.dll /PRELOAD:IDEPlugins\IDEFixPackStartup.bpl IDEPlugins\DDevExtensions2009.dll IDEPlugins\JclProjectAnalysisExpertDLL120.dll IDEPlugins\DfmCheck2009.bpl
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: 25 Jahre Delphi

  Alt 7. Aug 2023, 11:31
Also es gibt immernoch keinen Weg, aus einer Batch/FinalBuilder diese environment.proj zu aktualisieren, ohne dafür die BDS zu starten?
z.B. irgendein Tool von Emba aufzurufen

Schlimm ist auch, dass alle Imports, auch so Essentielle, mit einer Condition versehen sind
und es dann auch keine Fehlermeldung oder wenigstens Logmeldung gibt, die angibt, welche Imports nicht ausgeführt wurden.

Zumindestens via /preprocess kann man sich von MSBuild teilweise sagen lassen, was es macht, aber
* die DPROJ selbst zu parsen ist pervers bis fast unmöglich
* schön wöre es, wenn man das Ergebnis des letzten Schrittes bekommen könnte, direkt vor dem Ausführen
* leider stoppt /preprocess wohl schon nach dem "Evaluate imports and properties" -> https://learn.microsoft.com/en-us/vi...w?view=vs-2022
$2B or not $2B

Geändert von himitsu ( 7. Aug 2023 um 11:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#8

AW: 25 Jahre Delphi

  Alt 7. Aug 2023, 12:55
Also es gibt immernoch keinen Weg, aus einer Batch/FinalBuilder diese environment.proj zu aktualisieren, ohne dafür die BDS zu starten?
Den gibt es tatsächlich: Solange man es nicht mit dem Parameter dnsef bzw. donotsetenvfile unterbindet, macht die GetItCmd.exe das auch. Ein unkritischer Befehl wie GetItCmd -l=Hurz sollte genügen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: 25 Jahre Delphi

  Alt 7. Aug 2023, 13:30
Boar geil.

OK, -h sollte man auch nicht benutzen, aber -l= tut es auch (ohne die "nix gefunden"-Fehlermeldung).

Code:
cd /d "%ProjectPath%"
call "C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\rsvars.bat"
"%BDS%\bin\GetItCmd.exe" -l=
"%FrameworkDir%\MSBuild.exe" /nologo /target:Build /property:Platform=Win32 /property:Config=Debug "%ProjectFile%"


Dann kann ich nun endlich den alten Code aus meinem FinalBuilderScript rauswerfen.
* HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\22.0\Environment Variables mit dr reg.exe in einen Datei exportieren
* vorne ein [xyz] einfügen
* dann mit der INI-Funktion des FinalBuilders lesen und das als Umbegungsvariablen im FB setzen (könnte man auch pervers als Parameter an die MSBuild-Action übergeben)

* die MSBuild-Actions will ich eh demnächt durch manuelle Aufrufe der MSBuild.exe ersetzen (Run DOS Command / BatchFile)
* dann kann ich die GetItCmd und RSVars vor der MSBuild ausführen und muß nichts mehr manuell parsen

* jetzt muß ich nur noch das perverse Parsen der rsvars.bat ersetzen
In einer Batch kann man ja einfach CALL und sie ausführen lassen.
Aber desetzte Variablen einer Batch als Umgebungsvariable zurück in den FinalBuilder, geht nicht.
Ich lese die Datei "böse" als INI ein, Replace den Batch-Schrott und setzte es per VBScript als Umgebungsvariablen im FinalBuilder. (andere fügen ECHO an solche Dateien an und Parsen die Ausgabe dann im FinalBuilder)
$2B or not $2B

Geändert von himitsu ( 7. Aug 2023 um 13:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: 25 Jahre Delphi

  Alt 14. Aug 2023, 00:59
Also es gibt immernoch keinen Weg, aus einer Batch/FinalBuilder diese environment.proj zu aktualisieren, ohne dafür die BDS zu starten?
Das mache ich schlicht selbst mit meinen Buildtools.

Ich glaube ich lasse das auch so, dann habe ich die Kontrolle darüber.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz