Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Open Tools API: Ist es möglich *vor* dem compilieren nach einer Unit zu suchen? (https://www.delphipraxis.net/209784-open-tools-api-ist-es-moeglich-%2Avor%2A-dem-compilieren-nach-einer-unit-zu-suchen.html)

juergen 21. Jan 2022 22:41

Open Tools API: Ist es möglich *vor* dem compilieren nach einer Unit zu suchen?
 
Hallo zusammen,

ich habe nun schon länger recherchiert, musste dann aber immer wieder feststellen, dass das was ich will, nicht funktioniert.
Ich habe einen kleinen OTAPI-Experten geschrieben, der u.a. *vor* dem compilieren in den Projektoptionen bei Version die Build-Nummer setzt.
Das funktioniert meistens. Da wo es nicht funktionierte habe ich festgestellt, dass wenn man die dproj löscht, es danach funktionierte (bisher).

Nun möchte ich die Release Nr. gerne nutzen für die Versionsnummer der gerade verwendeten DevExpress-Version.
Das will ich aber nur setzen, wenn DevExpress überhaupt in dem jeweiligen Projekt verwendet wird.
DevExpress hatte mir empfohlen nach der Unit "dxCore" zu suchen.

Hat da jemand eine Idee wie ich vor dem compilieren diese Unit in dem jeweiligen Projekt finden kann und ob das überhaupt möglich ist?

Delphi-Quellcode:
PROCEDURE BeforeCompile( CONST Project: IOTAProject; IsCodeInsight: Boolean; VAR Cancel: Boolean ); OVERLOAD;


Vielen Dank schon mal vorab!

himitsu 22. Jan 2022 08:33

AW: Open Tools API: Ist es möglich *vor* dem compilieren nach einer Unit zu suchen?
 
Ganz im Ernst, ich erstelle und compiliere eine eigene Versionsressource und hab das im Projekt deaktiviert und es funktioniert immer.
* RC erstellen https://docs.microsoft.com/de-de/win...ninfo-resource
* zur RES kompilieren
* Fertiges ins Projekt einbinden

* im aktuellen Fall wird das alles im FinalBuilder mit erledigt
* zusätzlich wird auch noch eine INC mit einer CONST generiert
* wo dann in der RES und INC auch noch BranchName, Datum und HASH der verwendeten Git-Repos mit hinterlegt, dass man an der EXE dann sieht, woraus sie mal erstellt wurde (z.B. für die Möglichkeit nachträglicher geziehlter Bugfixe beim Kunden, weil man genau diese Version "nur" mit dem Bugfix neu bauen kann, ohne sonstwelche Nebenwirkungen)


Ein Grund, sowas niemals über die OTA zu machen:
* es ist nicht möglich sowas in einer BuildUmgebung zu nutzen oder über die Console zu kompilieren, bzw. man muß dann wieder Alternatives suchen.

Wenn, dann über das PreBuild-Event gemacht, dann hilft es zwar auch nicht, wenn man von extern die DPR über den DCC kompiliert,
aber es funktioniert, wenn man via MSBUILD die DPROJ kompiliert und schon ist es wieder einheitlich.




Auch die Versionsinfo ist inzwischen mit einer kranken Vererbung versehen,
also je Platform/Config gibt es eine eigene Einstellung und wenn man in den Projektptionen auch nur einmal in einer Config was eingestellt hatte, dann hilft es nicht das EDIT wieder zu löschen ... es bleibt überschrieben.

Hier kannst nur noch die DPROJ manuell ausmisten, oder sowas verwenden, wie den Hier im Forum suchenProject Magician / Bei Google suchenDelphi Project Magician.

Ich hab meine Versionsinfo nur in der einen RC/RES
du hast deine ein/mehrmals in der DPROJ und nochmal in der Projekt-RES.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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 by Thomas Breitkreuz