AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE wie MSBuild/DPROJ debuggen bzw. verstehen
Thema durchsuchen
Ansicht
Themen-Optionen

wie MSBuild/DPROJ debuggen bzw. verstehen

Ein Thema von himitsu · begonnen am 7. Aug 2023 · letzter Beitrag vom 5. Okt 2023
 
Benutzerbild von himitsu
himitsu

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

wie MSBuild/DPROJ debuggen bzw. verstehen

  Alt 7. Aug 2023, 13:42
Wie MSBuild arbeitet ist ja beschrieben.
https://learn.microsoft.com/en-us/vi...w?view=vs-2022

Am liebsten hätte das "Ergebnis", kurz vor dem Ausführen.
* alles importiert, was auch genutzt wird das geht schon
* alles "Ungenutzte" entfernt oder auskommentiert
* Variablen aufgelöst (bzw. Logeinträge an gewissen Stellen)

Das "erweiterte" Logging beim MSBuild aktivieren hilft nichts.
Aber den Parameter /preprocess hatte ich schonmal entdeckt.

Leider hilft das auch nur bedingt.


Im aktuellen Fall meinte die DCC32.exe dass ein Parameter ungültig sei,
aber ich fand anfangs nicht, wo dessen Wert her kommt. (er wurde aus mehreren Property/Variablen in der DPROJ zusammengesetzt und so kleinteilig hatte ich nicht gesucht, in allen Dateien und der Registry)


Code:
cd /d "%ProjectPath%"

:: Variablen der Build-Umgebung lesen
call "C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\rsvars.bat"

:: Umgebungsvariablen der IDE aktualisieren
:: von HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\22.0\Environment Variables
:: nach C:\Users\%USERNAME%\AppData\Roaming\Embarcadero\BDS\22.0\environment.proj
"%BDS%\bin\GetItCmd.exe" -l=

:: kompilieren
"%FrameworkDir%\MSBuild.exe" /nologo /target:Build /property:Platform=Win32 /property:Config=Debug "%ProjectFile%"
bzw. die Debugausgabe vom /preprocess , ohne zu kompilieren
Code:
:: Debug-Info in Console
"%FrameworkDir%\MSBuild.exe" /nologo /target:Build /property:Platform=Win32 /property:Config=Debug /preprocess "%ProjectFile%"

:: Debug-Info in Datei
"%FrameworkDir%\MSBuild.exe" /nologo /target:Build /property:Platform=Win32 /property:Config=Debug /preprocess:"%ProjectFile%.Debug" "%ProjectFile%"


Klar, entsprechend dem How-To, des ersten Links, könnte ich die Schritte auch selber nachstellen
und die DPROJ parsen, aber beim Auflösen der Variablen und Conditions wird es dann leider schlimm.

* Schön wäre also, wenn MSBuild das Parsen und Ausmisten übernimmt

* oder wenn man MSBuild den VariablenString bzw. die Condition geben könnte (inkl. der Liste aller aktueller Property/Variablen) und es mir dann das Ergebnis nennt.






https://learn.microsoft.com/de-de/vi...d?view=vs-2022
https://learn.microsoft.com/en-us/vi...s?view=vs-2022

auf den ersten Blick sieht es einfach aus und könnte man auch selber, aber es kann auch schlimmer werden, z.B.

Code:
$(ProjectOutputFolder.Substring(0,3))
$(registry:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\WebBrowser@HomePage)
$([System.DateTime]::Now)
$([System.DateTime]::Now.ToString("yyyy.MM.dd"))
TreatedAsLocalProp($(MSBuildThisFileName))
...
https://learn.microsoft.com/de-de/vi...s?view=vs-2022
https://learn.microsoft.com/en-us/vi...s?view=vs-2022
uvm.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
 


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 07:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz