Freigeben über


Verwenden von MSBuild

MSBuild stellt ein gut definiertes, erweiterbares XML-Format zum Erstellen von Projektdateien bereit, die Projektelemente vollständig beschreiben, die erstellt, erstellt werden müssen, und Buildkonfigurationen.

Allgemeine MSBuild-Überlegungen

MSBuild-Projektdateien, z. B. Visual C# .csproj- und Visual Basic.vbproj-Dateien, enthalten Daten, die zur Erstellungszeit verwendet werden, können aber auch Daten enthalten, die zur Entwurfszeit verwendet werden. Buildzeitdaten werden mithilfe von MSBuild-Grundtypen gespeichert, einschließlich Item Element (MSBuild) und Property Element (MSBuild). Entwurfszeitdaten, die für den Projekttyp und alle zugehörigen Projektuntertypen spezifisch sind, werden in Freiform-XML gespeichert.

MSBuild unterstützt keine systemeigene Unterstützung für Konfigurationsobjekte, stellt jedoch bedingte Attribute für die Angabe konfigurationsspezifischer Daten bereit. Beispiel:

<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>

Weitere Informationen zu bedingten Attributen finden Sie unter "Bedingte Konstrukte".

Erweitern von MSBuild für Ihren Projekttyp

MSBuild-Schnittstellen und APIs können in zukünftigen Versionen von Visual Studio geändert werden. Daher ist es umsichtig, die MPF-Klassen (Managed Package Framework) zu verwenden, da sie die Abschirmung vor Änderungen ermöglichen.

Das Verwaltete Paketframework für Projekte (MPFProj) stellt Hilfsklassen zum Erstellen und Verwalten eines neuen Projektsystems bereit. Sie finden die Quellcode- und Kompilierungsanweisungen unter MPF für Projekte – Visual Studio 2013.

Die projektspezifischen MPF-Klassen sind wie folgt:

Klasse Implementierung
Microsoft.VisualStudio.Package.ProjectNode IVsProject3

IVsCfgProvider2

IPersistFileFormat

IVsSolutionEvents
Microsoft.VisualStudio.Package.ProjectFactory IVsProjectFactory
Microsoft.VisualStudio.Package.HierarchyNode IVsHierarchy
Microsoft.VisualStudio.Package.ProjectConfig IVsCfg

IVsProjectCfg

IVsBuildableProjectCfg

IVsDebuggableProjectCfg
Microsoft.VisualStudio.Package.SettingsPage IPropertyPageSite

Microsoft.VisualStudio.Package.ProjectElement klasse ist ein Wrapper für MSBuild-Elemente.

Einzelne Dateigeneratoren im Vergleich zu MSBuild-Aufgaben

Auf einzelne Dateigeneratoren kann nur zur Entwurfszeit zugegriffen werden, aber MSBuild-Aufgaben können zur Entwurfszeit und zur Erstellungszeit verwendet werden. Verwenden Sie daher MSBuild-Aufgaben, um Code zu transformieren und zu generieren. Weitere Informationen finden Sie unter "Benutzerdefinierte Tools".