2009-06-15 2 views
4

Wir verwalten eine große Anzahl von .NET Projekt- und Lösungsdateien von Hand; es ist hässlich langweilig und sollte automatisiert werden. Die Dateien sind allesamt XML, also ist es nicht schwer, ein Werkzeug für unsere Zwecke zu schreiben, aber ich frage mich, ob jemand ein VS- oder TFS-API-Objekt kennt, mit dem ich mit diesen Dateien als Objekte arbeiten kann, ohne selbst ein eigenes erstellen zu müssen Klasse.Gibt es eine API zum programmgesteuerten Ändern von Projekt- und Lösungsdateien (.vbproj, .csproj, .sln)?

Für unsere Zwecke müssen wir sicherstellen, dass alle Projekte zu einer Reihe von Normen: - Basis Adressierung - benutzerdefinierten Typen bauen - spezifische Eigenschaften für jeden Buildtyp - custom „Nach dem Build“ Aktionen

Ich habe die APIs für die Arbeit mit Projekten gefunden, wenn sie in Visual Studio geladen sind, und wäge die Möglichkeit ab, ein Add-In für unsere Bedürfnisse zu schreiben - aber im Idealfall möchte ich ein Objekt direkt deserialisieren aus den Dateien; überprüfen Sie, dass es die Anforderungen erfüllt; Nehmen Sie bei Bedarf Änderungen vor und serialisieren Sie das Objekt zurück in die Datei.

fyi: Wenn Sie für das gleiche Ding suchen, lassen Sie mich wissen; Ich bin daran interessiert, dies nach Feierabend zu schreiben und es auf CodePlex zu teilen. Für meine Zwecke wird es einige Haken bei TFS geben, aber ich möchte auch etwas Nützliches für andere schaffen.

Antwort

4

Holen Sie sich die msbuild.xsd von Ihrem local schema cache und verwenden Sie xsd.exe darauf.

Wenn Sie Unterstützung für benutzerdefinierte Buildaufgaben hinzufügen möchten, verwenden Sie die MSBuildSchemaGen, um zuerst eine benutzerdefinierte XSD für Ihre Taskassemblys zu erstellen.

Wenn die Ausgabe von xsd.exe Sie nicht gut fühlen lässt, verwenden Sie XsdTidy, um es zu verbessern.

+0

Als Referenz musste ich das Hosting des MSBuildSchemaGen-Tools auf meine persönliche Website verschieben, da der alte Host jetzt heruntergefahren wurde - Sie finden ihn hier: http://www.goatly.net/downloads/msbuildschemagen –

+0

@MikeGoatly: Der Link wurde repariert. Vielen Dank! –

0

Da die sind XML können Sie ein Werkzeug zu tun, was Sie brauchen, indem Sie die XML .NET Classes etc und ändern, was Sie wollen.

Verwandte Themen