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      
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.019 Beiträge
 
Delphi 12 Athens
 
#1

AW: 25 Jahre Delphi

  Alt 18. Feb 2020, 07: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
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: 25 Jahre Delphi

  Alt 18. Feb 2020, 16: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.464 Beiträge
 
Delphi 12 Athens
 
#3

AW: 25 Jahre Delphi

  Alt 7. Aug 2023, 10: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
Ein Therapeut entspricht 1024 Gigapeut.

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

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

AW: 25 Jahre Delphi

  Alt 7. Aug 2023, 11: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.464 Beiträge
 
Delphi 12 Athens
 
#5

AW: 25 Jahre Delphi

  Alt 7. Aug 2023, 12: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)
Ein Therapeut entspricht 1024 Gigapeut.

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

Registriert seit: 10. Jun 2003
Ort: Berlin
10.019 Beiträge
 
Delphi 12 Athens
 
#6

AW: 25 Jahre Delphi

  Alt 13. Aug 2023, 23: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
Benutzerbild von himitsu
himitsu

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

AW: 25 Jahre Delphi

  Alt 5. Okt 2023, 16:12
Info: GetItCmd aktualisiert leider nur die environment.proj , aber nicht die EnvOptions.proj

[add] https://quality.embarcadero.com/browse/RSP-42430
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 5. Okt 2023 um 16:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Installationsformen von Delphi/Optimierung per Batch-Datei

  Alt 10. Okt 2023, 14:58
Aktuelle Lösung (aber in der Hoffnung die reparieren es dieses Jahrtausend noch)

Hmmm, "Wait For File Change" funktionierte irgendwie nicht ... es läuft bis zum Timeout, obwohl sich das Änderungsdatum ändert ... mit Attribut ging's dann
(an einer anderen Stelle funktioniert so ein Warten, auf eine Datei, welche durch ein DCC32 eines parallelen FinalBuilders geändert wird)
Angehängte Grafiken
Dateityp: png Screenshot 2023-10-10 155614.png (10,1 KB, 25x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (10. Okt 2023 um 15:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Installationsformen von Delphi/Optimierung per Batch-Datei

  Alt 18. Okt 2023, 10:39
Bin ich wirklich der Einzige, der sich auch nach so vielen Jahren endlich wünscht, dass es repariert wird? (0 Votes)

https://quality.embarcadero.com/browse/RSP-42430
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.019 Beiträge
 
Delphi 12 Athens
 
#10

AW: Installationsformen von Delphi/Optimierung per Batch-Datei

  Alt 18. Okt 2023, 11:33
Ich habe die Aktualisierung der Datei schlicht in mein AutoSetup-Tool eingebaut. Das geht schnell und ich bin nicht auf irgendwelche anderen Tools angewiesen.
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 03:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz