Laden...

[gelöst] C# Dependency Analyser ohne Projekt/ Solution

Erstellt von gelöschtem Konto vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.172 Views
Gelöschter Account
vor 5 Jahren
[gelöst] C# Dependency Analyser ohne Projekt/ Solution

Hallo,

ich bin gerade im Begriff meine Build Pipeline zu refactorn und das Tool, welches für die Generierung von Dateien und den Build an sich zuständig ist, weniger Config-lastig zu machen. Wir nutzen das Tool hauptsächlich um VS Projektdateien der selben Code-Base für mehrere VS Versionen und Projektkonstellationen zu erzeugen und haben dafür bisweilen klassische Build-Scripts verwendet, sprich das Tool wurde mit einem bestimmten Projekt-Script gestartet und hat dieses abgearbeitet.

Da die Pflege von diesen Scripten dann mühsam wurde wenn sich iterativ etwas am Projekt geändert hat, es wurden beispielsweise Ordner umbenannt, hinzugefügt oder gelöscht, wollte ich das Ganze nun so aufbauen, dass das Tool unter bestimmten Umständen nach entsprechenden Regeln komplette Unterordner des Projektes als eigene Projekte interpretiert und anhand der gefundenen Dateien (.cs, .h, .hpp, .c, .cpp) bereits den Typ und damit alle weiteren Schritte zur generierung der Projektdateien selbst festlegt.

Ein wenig Kopfzerbrechen bereitet mir hierbei allerdings die Verlinkung von Projekten als Abhängigkeit. Bei den .Net Klassen sieht das Ganze noch relativ einfach aus, da hier über die using-Direktive zweifelsfrei das Assembly und somit bestimmt werden kann, ob es sich dabei um eine Abhängigkeit im gleichen Projekt handelt oder eine externe Assembly dazugeladen werden muss.
Wie verhält es sich nun mit verschiedenen Projekten, die sich aber den gleichen Namespace bzw. einen Sub-Namespace teilen?

Ich habe dazu bereits foglende Punkte definiert:
• Read namespace definitions
• Read class, struct and enum definitions
• Read using statements

Wielche weiteren Kriterien kann ich hier außerdem anwenden um auf der reinen Textebene festzustellen welche Abhängigkeiten die Dateien innerhalb eines Ordners zu anderen Ordnern/ Projekten haben, um diese bei der Erzeugung der Dateien auch als Abhängigkeit zu berücksichtigen?