Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
MSBuild stellt ein gut definiertes, erweiterbares XML-Format zum Erstellen von Projektdateien bereit, die Projektelemente, Buildaufgaben und Buildkonfigurationen vollständig beschreiben, die gebaut werden müssen.
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). Designzeitdaten, die für den Projekttyp und alle zugehörigen Projektuntertypen spezifisch sind, werden in Freiform-XML gespeichert, das speziell dafür vorgesehen ist.
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:
| Class | Implementation |
|---|---|
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. Um eine maximale Flexibilität zu gewährleisten, verwenden Sie MSBuild-Aufgaben, um Code zu transformieren und zu generieren. Weitere Informationen finden Sie unter "Benutzerdefinierte Tools".