Ich arbeite an einem Codegeneratorprojekt, das eine Lösung mit anpassbaren Layern erstellt. Momentan kann ich die .sln-Datei erstellen, indem ich alle Elemente im Code schreibe. Die Projektdateien benötigen dies jedoch nicht, sie können mit der MSBuild-Projektklasse bearbeitet werden.
Ich möchte eine Website Projektvorlage Unterstützung und etc hinzufügen, so dass ich die SLN-Datei bearbeiten nicht cool ist, wollte ich wissen, dass es eine bessere Möglichkeit, dies zu tun, wie MSBuild oder etwas anderes?
Ich habe Visual Studio Solution zum Verwenden von Visual Studio SDK ( das ist für die Erweiterung von Visual Studio, das Schreiben von Plugins ...), aber es gibt kein Codebeispiel.
Danke im Voraus
So verwenden Sie SLNTools zum Erstellen einer SLN-Datei im Code. Der Code ist ein Chaos! Aber es funktioniert!
Das Projekt SLN Tools kann eine SLN-Datei aus Projektdateien erstellen. Es ist Open Source und bietet eine Benutzeroberfläche zum Bearbeiten und Zusammenführen von SLN-Dateien. In diesem Fall können Sie das Kernprojekt verwenden und indem Sie auf die 'CWDev.SLNTools.Core.dll' in Ihrem Projekt verweisen, können Sie einen unordentlichen (!) Code wie diesen schreiben:
HINWEIS : Einige Teile der Klasse werden hier nicht angezeigt. Außerdem gibt es einige benutzerdefinierte Objekte meines eigenen Projekts wie Sln, Project und ..., die nicht mit SLNTools-Objekten gleichen Namens verwechselt werden sollten. Ich kommentierte wo immer nötig!
%Vor%Ich hoffe, es hilft.
Sie können die Schnittstelle IVsSolution verwenden, um Lösungen zu erstellen und fügen Sie ihnen Projekte hinzu. Sie übergeben den SVsSolution -Typ an Methode GetService () um eine Instanz dieser Schnittstelle zu erhalten:
%Vor%In meinen Lösungsdateien werden Website-Projekte im Projektabschnitt WebsiteProperties gespeichert. Diese Eigenschaften werden je nach Buildkonfiguration als Eingabeparameter in den aspnet_compiler übergeben. Versuchen Sie in Ihren sln-Dateien, die das website project enthalten, nach projectID (GUID) (C9683FA5-AABA-497F-B780-80EFC3EB81F2 in diesem Fall) zu suchen, welche Teile der sln-Datei von Ihrem Codegenerator aktualisiert / generiert werden sollten.
%Vor%Sie sollten (mindestens) ProjectConfigurationPlatforms & amp; NestedProjects globale Abschnitte. Dies wurde in meinem Fall benötigt.
Ich habe Merge-Lösung-MsBuild-Task implementiert. Es unterstützt das Zusammenführen mehrerer Lösungsdateien in die eine MergedSolution.sln-Datei. Es funktioniert in unseren 20+ Lösungsdateien, die mehr als 500 Projekte enthalten (c # & amp; Website & amp; sql db Projektdateien / Abschnitte). Die Größe der Ausgabedatei beträgt 1,3 MB.
BEARBEITEN: Das SLN Tools-Projekt kann eine SLN-Datei aus Projektdateien erstellen.
So generieren Sie eine SLN-Datei mit einer benutzerdefinierten MSBuild-Aufgabe:
Tags und Links c# visual-studio msbuild code-generation solution