![]() |
AW: GitLab CI integration
Kannst du mir mal so eine dproj mit den optsets schicken? Ich weiss nur nicht, wann ich dazu komme. Kann Weihnachten werden.
|
AW: GitLab CI integration
Es ist echt frustrierend.
Delphi-Quellcode:
kann man nicht in optsets verwenden, da diese Variable beim Laden noch nicht existiert.
$(SanitizedProjectName)
Mit $(MSBuildProjectName) bekommt man das Projekt zwar compiliert, jedoch kann man dann nicht mehr debuggen: ![]() ![]() ![]() Das sind einfach schon drei Bugs, die einem aufhalten, eine saubere CI/CD Umgebung aufzubauen. Wozu bezahlt man eigentlich noch teure Lizenzen, wenn die grundlegendsten Dinge nicht funktionieren. |
AW: GitLab CI integration
Zitat:
Intern hatte ich schon angeregt, die Variable bereits in der ersten PropertyGroup zu deklarieren, wo auch MainSource drin steht. Dann würde das auch mit den OptSets klappen. Vielleicht baue ich das irgendwann mal in den Project Magician ein. Dass $(MSBuildProjectName) von der IDE, insbesonder dem Debugger, nicht aufgelöst werden kann, ![]() Zu den C++ Problemen kann ich nichts sagen, da ich diese Personality nie verwende. Aus diesem Grund gehört C++ auch nicht zu den von Project Magician unterstützten Zielen. Wenn's klappt ist es gut, wenn nicht dann eben nicht. Ich kenne persönlich aber eine ganze Reihe von Delphi-Installationen, die problemlos in CI/CD Umgebungen laufen. Einige davon habe ich selbst eingerichtet. |
AW: GitLab CI integration
Zitat:
Delphi-Quellcode:
auch gar nicht, wenn man
SanitizedProjectName
Delphi-Quellcode:
problemlos nutzen könnte.
MSBuildProjectName
Zitat:
Zitat:
|
AW: GitLab CI integration
Mit MSBuild allgemein hab ich auch noch einige Problemchen.
Sowas wie $(OutputFileName) ist im AfterBuildScript öfters mal garnicht gesetzt und demnach leer, wenn man es dort verwendet, obwohl eigentlich in einem in der DPROJ eingebundenen Script (CodeGear.Delphi.Targets, CodeGear.Common.Targets) gesetzt und auch geprüft wird, ob es gesetzt ist. Warum es nicht geht, weiß ich nicht. Als Bugfix generiere ich im FinalBuilder die fehlenden Variablen und übergebe sie als Parameter ans MSBuild. Meine Vermutung war, dass er die *.target aus irgendeinem Grund nicht einbindet, was gut sein kann, da diese <Import>'s nur bei einem Exists macht. Was aber auch noch ein perverser Bug ist, dass bei DllSuffix $(Auto) die Versionsnummern nicht in den Variablen $(OutputFileName) drin stehen, sowohl im InlineCompiler, als auch im MSBuild. Also er erzeugt eine meine280.bpl, aber in den Variablen steht was von meine.bpl :wall: Und außerdem hat Delphi nirgendwo eine Variable/Konstante/Registryeintrag, wo diese Nummern auslesbar sind. |
AW: GitLab CI integration
Zitat:
Natürlich kann man diese MSBuild-Variablen innerhalb des Build-Prozesses nutzen, aber man kann dann nicht erwarten, dass das dann außerhalb des Build-Prozesses auch funktioniert. Selbst wenn man das jetzt für diese eine Variable implementieren würde, käme sicher bald die Frage auf: Warum nicht die anderen auch? Dann hätte man aber eine potentielle Abhängigkeit von der verwendeten MSBuild-Version. Das halte ich eher für kontraproduktiv. Was in der Tat zu bemängeln ist: Die IDE bzw. der Debugger lösen $(SanitzedProjectName) auch nicht auf, wenn es im Ausgabepfad für die EXE steht. Das ist nicht ganz, was in ![]() ![]() Ich habe daher mal zwei neue Reports eingestellt, die diese Themen gezielt ansprechen: ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 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