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
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi GetIt Package Manager Command Line

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

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

AW: Delphi GetIt Package Manager Command Line

  Alt 3. Sep 2020, 07: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 08:44 Uhr)
  Mit Zitat antworten Zitat
PatrickB08

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

AW: Delphi GetIt Package Manager Command Line

  Alt 3. Sep 2020, 08: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.340 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi GetIt Package Manager Command Line

  Alt 3. Sep 2020, 09: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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi GetIt Package Manager Command Line

  Alt 11. Nov 2020, 13:43
Hat das inzwischen jemand zum Laufen gebracht?

Vor Aufruf der getitcmd.exe soll man einmal die rsvars.bat aufrufen, um die Umgebungsvariablen von der IDE zu setzen.
Auflisten der Packages funktioniert. (so halbwegs)
Nur das mit dem Installieren, also der Hauptfunktion, ... naja.

Code:
cd /d "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin"
rsvars
getitcmd --list= --filter=installed
getitcmd --list= --filter=all
getitcmd --install=Navigator-1.6.1 --accepteulas --installdeferred --verb=minimal --donotsetenvfile

Nach getitcmd --list= --filter=all stürzt GetIt ab, nachdem es fertig ist.
Code:
...
Command finished with success!
Runtime error 217 at 00409825
Bei getitcmd --install=Navigator-1.6.1 --accepteulas --installdeferred --verb=minimal --donotsetenvfile heißt es
Code:
ERROR: Too many arguments.
[edit] OK, Installdeferred, darf nicht mit Anderem zusammen. [/edit]

Das sind übrigens auch so in etwa die Parameter, welche die GetIt-Dependencies in den Projektoptionen benutzen, was auch nicht benutzbar ist.
Code:
[Warning Warnung] Checking GetIt package dependencies
[MSBuild Fehler] Unerwarteter Fehler bei der GetItCmd-Aufgabe.
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
   bei Borland.Build.Tasks.Common.CommandLineTask.Execute()
   bei Borland.Build.Tasks.Shared.GetItCmd.Execute()
   bei Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)
aus CodeGear.Common.Targets (wer zu den GetIt-Dependencies etwas sucht und dort findet, dass man BDSHost=true in die Umgebungsvariablen schreiben soll ... hier sieht man das Gegenstück dazu)
Code:
  <!-- Since there's an IDE limitation about handling more than one compilation,
  GetItCmd should be called only when compiling from command line -->
  <Target Name="_CheckGetItPackageDependencies" DependsOnTargets="_CheckBDSHostObject"
    Condition="('$(GetItPackages)'!='') And '$(BDSHost)'!='true'">
    <CallTarget Targets="_ExecGetItCmd"/>
  </Target>

  <Target Name="_ExecGetItCmd">
    <Warning Text="Checking GetIt package dependencies"/>
    <GetItCmd
        ProjectFileName="$(MSBuildProjectFullPath)"
        Accept_eulas="true"
        InstallPackages="$(GetItPackages)"
        DoNotSetEnvFile="true"
        Verbosity="Normal"
    />
  </Target>

Und bei getitcmd --install=Navigator-1.6.1 --accepteulas will GetIt erstmal alles/einiges deinstallieren. (da hab ich den UAC-Dialog abgebrochen, bevor was kaputt geht)
Als Erstes gleich mal die Delphi-IDE selbst. (scheint das zu sein, was man sich mühevoll über den GetItInstaller runtergeholt hatte)
Code:
Uninstalling: Uninstalling Library "Delphi Common Files Enterprise German"...

Anfangen wollte ich erstmal mit.
10.4Patch1-10
10.4Patch2de-10
10.4Patch3-10
ParnassusCoreEditor-1.6.1 ?
Navigator-1.6.1
Bookmarks-1.6.1
Icons8-1.0
(Komponenten für's Programm werden wohl nie über GetIt verwendet, so lange man dort keine eigenen/alternativen Paketquellen angeben kann und somit auf's Gutdünken Embas angewiesen ist, außerdem haben wir die Fremdkomponenten größtenteils als Quellcode in einem eigenen Git-Repository ... den Teil aber über eine eigene Paketquelle wäre schon interessant, anstatt es manuell im FinalBuilder zu machen)


Man findet ja nicht viel zum Thema, aber da hat/hatte man auch das selbe Problem, wo Packages deinstalliert werden.
https://qiita.com/ht_deko/items/2e7184431888c6c0612f
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (12. Nov 2020 um 10:50 Uhr)
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi GetIt Package Manager Command Line

  Alt 21. Jun 2021, 07:22
Code:
cd /d "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin"
rsvars
getitcmd --list= --filter=installed
getitcmd --list= --filter=all
getitcmd --install=Bookmarks-1.6.2 --accepteulas --verb=minimal --donotsetenvfile
Funktioniert! Allerdings fehlt da vorher noch getitcmd -c=useonline , sonst kommt "RADSTUDIO.JSON metadata not found".
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
136 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi GetIt Package Manager Command Line

  Alt 6. Mär 2023, 07:14
Ich bringe das Thema nach sehr langer Zeit mal wieder nach oben

Gibt es eine Möglichkeit die Pakete darüber zu installieren ohne die absolute Version anzugeben?
Hintergrund ist, ich möchte auf meinem bestehenden System die Paketliste exportieren, dann Delphi updaten und die Packages wieder installieren.
Allerdings ändert sich natürlich auch die Paketversion mit neueren Delphiversionen...

Praktisch wäre, wenn man die Pakete wie mit pip installiren könnte und getit die jeweils aktuelle und zur Delphiversion passende auswählen würde.

z.b.

Code:
getitcmd --install=Bookmarks --accepteulas --verb=minimal --donotsetenvfile
anstatt

Code:
getitcmd --install=Bookmarks-1.6.2 --accepteulas --verb=minimal --donotsetenvfile

Viele Grüße
Bastian
Bastian
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
136 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi GetIt Package Manager Command Line

  Alt 6. Mär 2023, 09:11
hab es mal mit der "EdgeBrowserDemo" versucht

das scheint leider nicht zu klappen...

Code:
getitcmd --install=EdgeBrowserDemo
Bastian
  Mit Zitat antworten Zitat
Antwort Antwort

 

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:33 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