Entwickler-Ecke

Programmierwerkzeuge - Packages an der Befehlszeile installieren


galagher - Mo 13.07.20 17:45
Titel: Packages an der Befehlszeile installieren
Hallo!

In einem schon etwas älteren Beitrag https://entwickler-ecke.de/viewtopic.php?t=117921 fragte ich, wie ich den Compiler dcc64.exe an der Befehlszeile aufrufe. Das klappt mit .dproj-Dateien.

Nun stellt sich mir in diesem Zusammenhang die Frage, ob ich auf diese Weise auch Packages installieren kann, denn da werden ja keine ausführbaren exe-Dateien erzeugt, sondern .bpl-Dateien, und ich habe da keine .pas-Dateien, sondern eine .pkg-Datei.

Dazu muss ich dann vermutlich DCC32.EXE aufrufen, oder? Und kann man dazu auch MSBuild.exe verwenden?


jaenicke - Mo 13.07.20 23:18

MSBuild ist die erste Wahl dafür. Das erstellt die Packages aber nur und installiert sie nicht.

Zur Installation kann man die Werte direkt in die Registry schreiben. Auf diese Weise lassen sich auch gut Pfade usw. setzen.
Tipps:

Quelltext
1:
2:
3:
HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Known Packages
HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Library\Win32
...


galagher - Di 14.07.20 15:58

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
MSBuild ist die erste Wahl dafür. Das erstellt die Packages aber nur und installiert sie nicht.

Zur Installation kann man die Werte direkt in die Registry schreiben. Auf diese Weise lassen sich auch gut Pfade usw. setzen.
Tipps:

Quelltext
1:
2:
3:
HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Known Packages
HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Library\Win32
...
Dachte mir, dass das nicht so einfach ist...
Wie sehen denn die Parameter beim Aufruf von MSBuild aus, und wo genau in der Registry müssen die Werte rein?


jaenicke - Di 14.07.20 17:30

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Wie sehen denn die Parameter beim Aufruf von MSBuild aus, und wo genau in der Registry müssen die Werte rein?
Die Parameter hatte ich doch schon gepostet:
https://entwickler-ecke.de/viewtopic.php?p=716813#716813
Die Projektdatei alleine reicht glaube ich schon, allerdings sagst du dann nicht mit welcher Buildkonfiguration usw. kompiliert werden soll.

Und zur Registry muss man in diesem Fall eigentlich nichts weiter sagen... schau einfach mal rein, das ist selbsterklärend...


galagher - Mi 15.07.20 07:14

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Die Projektdatei alleine reicht glaube ich schon, allerdings sagst du dann nicht mit welcher Buildkonfiguration usw. kompiliert werden soll.
Ja, stimmt... Und es wird nicht egal sein, welche Buildkonfiguration ich angebe. Ich glaube, ich lasse das.


jaenicke - Mi 15.07.20 13:34

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Ja, stimmt... Und es wird nicht egal sein, welche Buildkonfiguration ich angebe. Ich glaube, ich lasse das.
Aber was ist denn daran schwierig?

Quelltext
1:
2:
"C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\rsvars.bat"
MSBuild.exe d:\components\SynEdit\SynEdit.dproj /target:Build /p:config=Release;Platform=Win32

Die erste Zeile ist immer gleich, einfach die rsvars.bat deiner Delphiversion aufrufen um msbuild mit Delphi nutzen zu können. Dann msbuild aufrufen mit dem Dateinamen der Projektdatei und zur Erzeugung, Buildkonfiguration Release und Plattform Win32 immer den genannten Parametern: /target:Build /p:config=Release;Platform=Win32

Sprich du musst in dieser Batchdatei nur den Namen deiner Projektdatei einsetzen. Wo ist denn da das Problem?!? Und aus dem anderen Thread dachte ich eigentlich, dass es bei dir schon einmal funktioniert hatte? :nixweiss:

Und in der Registry auch... ein Blick zeigt, dass unter Known Packages einfach jeweils die erzeugte .bpl Datei des Packages als Name eines Wertes steht und als Wert die Beschreibung des Packages.

Unter Library\Win32 stehen im Grunde die gleichen Werte wie in den Optionen. Eben in dem Fall relevant der Bibliothekspfad, auf Englisch Search Path, in dem wenig überraschend einfach das gleiche drin steht wie auch in den Optionen in Delphi.

Mit msbuild ist die Erzeugung auf der Kommandozeile wirklich ein absolutes Kinderspiel geworden. Wenn du dabei trotzdem Probleme hast, müsstest du konkret schreiben womit du aktuell ein Problem hast...


galagher - Mi 15.07.20 18:12

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Sprich du musst in dieser Batchdatei nur den Namen deiner Projektdatei einsetzen. Wo ist denn da das Problem?!? Und aus dem anderen Thread dachte ich eigentlich, dass es bei dir schon einmal funktioniert hatte? :nixweiss:
Ja, das funktioniert auch, aber das Projekt noch einmal hervorholen und umschreiben, nur um dann das neue Programm auch nicht zu benutzen? Ich meine, ich brauche das doch gar nicht, wenn Delphi das sowieso kann! Eine schöne Übung, aber mehr nicht.

Ok, vielleicht gehe ich das dann an, wenn ich mal ein neues Package installieren möchte.


jaenicke - Mi 15.07.20 23:34

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Ich meine, ich brauche das doch gar nicht, wenn Delphi das sowieso kann! Eine schöne Übung, aber mehr nicht.
Wir verwenden das auf unserer Buildmaschine. Die checkt automatisch die aktuelle Version der Quelltexte aus und erstellt die Anwendungen und DLLs. Auf die Weise weiß man, dass nichts auf dem lokalen PC, das nicht im Repository ist, den Build beeinflusst.


entwickler123 - Fr 07.08.20 15:57

Hallo,

genau die selbe Frage habe ich mir auch gestellt. Hoffe jemand weiß weiter :)

Mfg Carina