Erstellen Sie MSBuild benutzerdefinierte Task C # -Code zu ändern * vor * kompilieren
-
03-07-2019 - |
Frage
Ich möchte eine benutzerdefinierte MSBuild-Aufgabe erstellen, die meine CS-Dateien ändert, bevor sie von csc.exe kompiliert werden (aber natürlich, dass sie nicht an Ort und Stelle nicht verändert - ich will nicht unbedingt der Quelldateien berührt) . Ich bin mir bewusst, Postsharp und andere AOP-Frameworks für .NET und sie sind keine Option für dieses Projekt, und ich möchte lernen, wie dies zu tun.
Was genau muss ich tun dies, um zu arbeiten?
Danke Richard
Lösung
Angesichts Ihrer Einschränkungen Ich glaube, Sie folgendes tun:
- Erstellen von benutzerdefinierten Aufgabe, die die Liste von cs-Dateien akzeptiert, bevor die Anpassung an Kompilation
- Die benutzerdefinierte Aufgabe passt sich die Liste der Dateien empfangen und erzeugt sie auf der Festplatte
- Die benutzerdefinierte Task setzt die Liste der geänderten Dateien auf den Ausgabeparameter
- Die Ausgabe der Aufgabe, die ursprüngliche cs-Dateien Liste würde ersetzen
- Die Zusammenstellung wird gegen die geänderten Dateien durchgeführt.
Der Schritt 4 stellt sicher, dass die Dateien, die schließlich kompiliert werden, diejenigen sind, die durch Ihre individuelle Aufgabe verändert wurden.
Sie verlassen sich stark auf der ITaskItem Schnittstelle für den Job.