Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Delphi GetIt Package Manager Command Line

  Alt 11. Nov 2020, 14: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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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