AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi GetIt Package Manager Command Line

Delphi GetIt Package Manager Command Line

Ein Thema von PatrickB08 · begonnen am 1. Sep 2020 · letzter Beitrag vom 8. Mär 2023
Antwort Antwort
Seite 1 von 3  1 23   
PatrickB08

Registriert seit: 8. Jun 2020
8 Beiträge
 
#1

Delphi GetIt Package Manager Command Line

  Alt 1. Sep 2020, 08:31
Aktuell arbeite ich am Aufsetzen eines automatisierten Test Servers für unsere Delphi Programme. Um unsere Tools automatisiert zu testen verwenden wir Jenkins und virtuelle Maschinen als Jenkins Windows slaves. Auf diesen wird Delphi mit Hilfe
einer silent Installation installiert (da wir auf den slaves nichts manuell selber installieren, alles nur mit batch files). Einige unsererer Apps benötigen jedoch noch zusätzliche Packages, welche wir bisher über den GetIt Package manager installieren konnten (zum Beispiel: LockBox3).
Auf den Windows slaves jedoch soll dies auch mit Hilfe eines batch files komplett automatisert geschehen. Nun wollte ich fragen, ob dies denn möglich ist und wenn ja, wie (zum Beispiel: Nutzen des getitcommand tools, welches jedoch laut Foren nicht supportet wird?).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi GetIt Package Manager Command Line

  Alt 1. Sep 2020, 10:55
https://www.delphipraxis.net/205253-...errschaft.html
Bin aber leider noch nicht viel weiter gekommen.


Du kannst das Gewünschte auf auf einem PC via GetIt runterladen/installieren
und dann die nötigen Komponenten/Verzeichnisse kopieren.
%USERPROFILE%\Documents\Embarcadero\Studio\21.0\Ca talogRepository (C:\Users\%USERNAME%\...)
Dort findest je Komponente ein Verzeichnis, da drin noch ein Unterverzeichnis und dort dann oftmals die BAT/CMD/EXE des jeweiligen Installers.


Ansonsten:
Ich glaub ich hatte in der OpenToolsAPI (OTA) ein paar Interfaces für GetIt gesehen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Sep 2020 um 10:59 Uhr)
  Mit Zitat antworten Zitat
PatrickB08

Registriert seit: 8. Jun 2020
8 Beiträge
 
#3

AW: Delphi GetIt Package Manager Command Line

  Alt 1. Sep 2020, 12:18
Leider gibt es bei der LockBox keinen installer im entsprechendem Verzeichnis ("C:\Users\%USERNAME%\Documents\Embarcadero\Studio \20.0\CatalogRepository\LockBox-3.7"). Es gibt nur eine GetItInstaller.dat datei?

ad.png
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi GetIt Package Manager Command Line

  Alt 1. Sep 2020, 13:11
GetItInstaller.dat
Wozu diese nutzlose Datei sein soll, hab ich auch noch nicht verstanden.
Dachte anfangs da stünde drin was gemacht werden muß .... aber neeeeee

Was zu machen ist, das steht in HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\21.0\CatalogRepository\Elements



%USERPROFILE%\Documents\Embarcadero\Studio\21.0\CatalogRepository\LockBox-3.7-Sydney\packages\Sydney\Delphi\*.dpr oder *.dproj

Du kannst alle .DPR mit DCC32 kompilieren
oder mit MSBuild, bzw. über BDS.exe die .DPROJ
Delphi-Quellcode:
bds -np -b C:\...\xxx.dproj
bds -np -p Delphi -b C:\...\xxx.dproj // im RAD Studio nicht sinnlos das C++ mit laden
Bei MSBuild und BDS würde auch PreBuild- und AfterBuild-Script mit ausgeführt.

Anschließend mußt du aber noch die Packages im Delphi registrieren, da über BDS.exe nur COMPILE oder BUILD angestoßen werden kann, aber nicht INSTALL.



Via OpenToolsAPI könnte man Projekte laden und das Compilieren+Installieren starten.
Miniaturansicht angehängter Grafiken
lb.png  
Angehängte Dateien
Dateityp: txt lb.reg.txt (1.004 Bytes, 8x aufgerufen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Sep 2020 um 13:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi GetIt Package Manager Command Line

  Alt 2. Sep 2020, 16:04
Ach ja, wir haben inzwischen alles auf Komponenten umgestellt, wo wir auch den Quellcode bekommen.
Im Notfall selbst auf neues Delphi umstellbar (wenn der Hersteller nicht hinterherkommt oder tot ist) und auch selbst Bugfixe/Anpassungen einbauen können.

Dieses liegt im Git (zwei Repos für externe Komponenten und für das eigene Zeugs)
und wird vorwiegend im FinalBuilder kompiliert. (die eigenen Projekte auch im Delphi)
Der FB registriert ebenfalls die Packages im Delphi
HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\21.0\Kn own Packages
deregistriert vorher gleichnamige Packages (z.B. von einer lokalen Installation oder einer anderen Version)
und räumt die beim Arbeiten/Compilieren/Debuggen im Delphi deaktivierten Packages auf
HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\21.0\Di sabled Packages

Vorteil ist auch, dass man abwechselnd mit unterschiedlichen Versionen der Komponenten arbeiten kann.
z.B. alte Version für rückwärtige Bugfixe, oder schon die neue Version, bevor sie im Master an alle Verteilt wurde.

Wenn jeder Entwickler mit einer eigenen/anderen Version (über das GetIt) unsere Projekte kompilieren würde, dann gäbe es auch ein perfektes Chaos und würde bestimmt oft knallen, wenn Interfaces geändert wurden.

Aber ja, wenn man im GetIt eigene Packet-Quellen angeben könnte und man darüber seine "eigenen" Komponenten verteilen würde, dann wäre das bestimmt eine witzige Idee hierfür GetIt zu verwenden
und die Komponenten über die IDE zu verteilen, anstatt über ein externes Programm.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.951 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi GetIt Package Manager Command Line

  Alt 2. Sep 2020, 18:03
Du kannst die Idee ja gerne als QP feature request anbringen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi GetIt Package Manager Command Line

  Alt 2. Sep 2020, 19:08
Zitat:
GetItCmd.exe
Im 10.4 Update 1 gab es irgendwelche Verbesserungen.
Kannst ja mal ausprobieren, ob das dir jetzt hilft.


Du kannst die Idee ja gerne als QP feature request anbringen.
Dafür müssen die erstmal hinbekommen, dass man mehrere Komponenten auswählen und zusammen installieren kann,
sonst klickt man sich dumm und dusslig, während man sich dazwischen immer wieder zu tode langweilt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
PatrickB08

Registriert seit: 8. Jun 2020
8 Beiträge
 
#8

AW: Delphi GetIt Package Manager Command Line

  Alt 3. Sep 2020, 08:05
Zitat:
GetItCmd.exe
Im 10.4 Update 1 gab es irgendwelche Verbesserungen.
Kannst ja mal ausprobieren, ob das dir jetzt hilft.
Leider finde ich dazu keine Dokumentation und nach eigenen Tests stürtzt das Programm immer ab.
Ich habe aber mal für die Installation für die LockBox ein Batch Skript geschrieben (Vorlage: https://www.delphipraxis.net/198824-...ml#post1472843).
Leider bekomme ich nun immer die Fehlermeldung, dass die designide fehlt (beim kompilieren von LockBox3FMXDD.dproj und LockBox3VCLDD.dproj). Diese gibt es auch nicht im entsprechenden lib order unter win64 nur für win32. Sollte dies eh nicht nur für win32 eine Rolle spielen?

Das Batch Skript:

Code:
CALL "C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\rsvars.bat"
ECHO %BDS%
ECHO %BDSCOMMONDIR%
SET BPLREG="HKEY_CURRENT_USER\Software\Embarcadero\BDS\20.0\Known Packages"
ECHO %BPLREG%
SET LIBREG="HKEY_CURRENT_USER\Software\Embarcadero\BDS\20.0\Library\Win64"
ECHO %LIBREG%
SET BPLPATH="%BDSCOMMONDIR%\Bpl"
ECHO %BPLPATH%
SET BDSCATALOGREPO=C:\Users\%USERNAME%\Documents\TMP\Delphi
ECHO ================================================================================

rem LockBox3
ECHO LockBox3
ECHO LockBox3DR

rem add search path for library
SET LIB_LOCKBOX=%BDSCATALOGREPO%\LockBox3\design\;%BDSCATALOGREPO%\LockBox3\run\ciphers\;%BDSCATALOGREPO%\LockBox3\run\cryptography\;%BDSCATALOGREPO%\LockBox3\run\hashes\;%BDSCATALOGREPO%\LockBox3\run\library surface\;%BDSCATALOGREPO%\LockBox3\run\RSA\;%BDSCATALOGREPO%\LockBox3\run\utilities
:: extract path from registry entry
FOR /F "tokens=3* skip=2" %%a in ('reg query %LIBREG% /v "Search Path"') do set "DELPHI_LIB_SEARCH=%%b"
ECHO New variable DELPHI_LIB_SEARCH = %DELPHI_LIB_SEARCH%
:: check if substring is already present in path -> if not: add it to path
echo %DELPHI_LIB_SEARCH%|find /i "%LIB_LOCKBOX%">nul || set DELPHI_LIB_SEARCH=%DELPHI_LIB_SEARCH%;%LIB_LOCKBOX%
reg add %LIBREG% /v "Search Path" /t REG_SZ /d "%DELPHI_LIB_SEARCH%" /f

:: compile in order to get *.bpl
msbuild "%BDSCATALOGREPO%\LockBox3\packages\Rio\Delphi\LockBox3DR.dproj" /t:Build /p:Configuration=Release /p:platform=Win64
IF NOT %ERRORLEVEL%==0 GOTO ERROR
reg delete %BPLREG% /v "%BPLPATH%\LockBox3DR260.bpl" /f >NUL 2>&1
reg add  %BPLREG% /v "%BPLPATH%\LockBox3DR260.bpl" /t REG_SZ /d "Turbo LockBox3 Delphi package" >NUL

::ECHO LockBox3FMXDD
msbuild "%BDSCATALOGREPO%\LockBox3\packages\Rio\Delphi\LockBox3FMXDD.dproj" /t:Build /p:Configuration=Release /p:platform=Win64
IF NOT %ERRORLEVEL%==0 GOTO ERROR
reg delete %BPLREG% /v "%BPLPATH%\LockBox3FMXDD260.bpl" /f >NUL 2>&1
reg add  %BPLREG% /v "%BPLPATH%\LockBox3FMXDD260.bpl" /t REG_SZ /d "Turbo LockBox3 FMX designtime package" >NUL

ECHO LockBox3VCLDD
msbuild "%BDSCATALOGREPO%\LockBox3\packages\Rio\Delphi\LockBox3VCLDD.dproj" /t:Build /p:Configuration=Release /p:platform=Win64
IF NOT %ERRORLEVEL%==0 GOTO ERROR
reg delete %BPLREG% /v "%BPLPATH%\LockBox3VCLDD260.bpl" /f >NUL 2>&1
reg add  %BPLREG% /v "%BPLPATH%\LockBox3VCLDD260.bpl" /t REG_SZ /d "Turbo LockBox3 VCL designtime package" >NUL

GOTO DONE

:ERROR
ECHO ================================================================================
ECHO FEHLER aufgetreten! ERRORLEVEL = %ERRORLEVEL%
ECHO ================================================================================
GOTO END

:DONE
ECHO ================================================================================
ECHO Build erfolgreich!
ECHO ================================================================================
GOTO END

:END
SET BPLREG=
SET BPLPATH=
SET LIBREG=
SET BDSCatalogRepository=
SET LIB_PATH_LOCKBOX=
SET BDSCATALOGREPO=
SET LIB_LOCKBOX=
SET DELPHI_LIB_SEARCH=

Geändert von PatrickB08 ( 3. Sep 2020 um 09:44 Uhr)
  Mit Zitat antworten Zitat
PatrickB08

Registriert seit: 8. Jun 2020
8 Beiträge
 
#9

AW: Delphi GetIt Package Manager Command Line

  Alt 3. Sep 2020, 09:43
hat sich erledigt. Hatte die falsche platform fürs kompilieren -> einfach auf win32 und jetzt läufts.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi GetIt Package Manager Command Line

  Alt 3. Sep 2020, 10:50
Jupp, die IDE gibt es nur als 32 Bit, also braucht man DesignTime-Packages ausschließlich als Win32 und deswegen gibt es diese gegeimen IDE-DCUs auch nur in Win32.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:54 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