Ich muss einige Dateien in meiner Lösung mit einem externen Befehlszeilencompiler kompilieren und übergibt seine Ausgabe (CS-Dateien) an die Eingabe des C# -Compilers, so dass es sie in der resultierenden Assembly erstellen wird. Vorschläge zur Erreichung dieser Aufgabe vorschlagen.benutzerdefinierte Build für VS2010
Antwort
Ich habe über das gleiche Problem schon einmal. Die einfachste Möglichkeit ist, die Ausgabedatei (en) in Ihr Projekt einzufügen und den Generator über die Befehlszeileneinstellung vor dem Build aufzurufen. Es gibt viele Probleme mit dieser Technik, es zerstört die integrierte Quellcodeverwaltung und wenn Ihr Generator Dateien dynamisch erstellt, wird es nicht funktionieren. Es gibt Möglichkeiten, dies zu umgehen, die Dateien vor dem Überschreiben mit dem Generator zu vergleichen, so dass nur Änderungen zu Überschreibungen führen, und die Dateien in einer einzigen .cs-Datei mit einer bekannten Namensdatei zu speichern. Keine von diesen sind Spaß oder Satisfactory IMHO.
Ich würde empfehlen, wenn Sie überhaupt mit der Verwendung T4 dafür aussehen. Sie sagen nicht, ob der externe Generator Ihr ist oder nicht, aber wenn es ist, sollte es nicht zu schwer zu konvertieren sein. Es ist viel sauberer, übersichtlicher und leichter zu pflegen als ein extern verbundenes Werkzeug.
Sie können Projekt -> Einstellungen -> Build Events -> Pre-Build-Ereignis verwenden, um Ihre CS-Datei zu generieren und dann nur sicherstellen, dass Ihre CS-Datei in Ihrem Projekt enthalten ist und es gut bauen sollte.
Läuft T4 beim Kompilieren über MSBuild? – user536232
Es kann: http://msdn.microsoft.com/en-us/library/ee847423.aspx – Paul