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.
In diesem Abschnitt werden einige grundlegende MSBuild-Terminologie für WDK-Entwickler vorgestellt, die mit Build.exe und NMake.exevertraut sind. Dieser Abschnitt zeigt die Erstellung einfacher MSBuild-Projekte.
Nmake-Konzepte, die für MSBuild relevant sind
Wenn Sie mit Build.exe und früheren Versionen von WDK (vor WDK 8) gearbeitet haben, sind Sie wahrscheinlich mit der Terminologie und den Konzepten vertraut, die NMake.exe verwendet.
- command - ruft ein Kommandozeilenprogramm auf.
- target – beschreibt eine benannte Abfolge von Befehlen.
- Abhängigkeit – beschreibt ein Ziel, das von anderen Zielen abhängt.
- Nmake wird bei einem Makefile mit einem oder mehreren angegebenen Zielen aufgerufen. Anschließend werden alle Abhängigkeiten rekursiv und dann die Befehle des Ziels ausgeführt.
- Nmake-Dateien können andere Make-Dateien für die robuste Verwaltung der Buildstruktur enthalten.
- Nmake unterstützt auch das Erstellen benannter Variablen, die durch Parameter von Befehlen ersetzt werden.
- Nmake unterstützt auch automatische Variablen, die vom Make.exe selbst zugewiesen werden, z. B. den Namen des aktuellen Verzeichnisses oder Pfads.
- Ein Ziel wird während eines einzelnen Builds nie zweimal ausgeführt. Nachdem ein Ziel ausgeführt wurde, wird angenommen, dass es seine Arbeit abgeschlossen hat und nicht erneut ausgeführt wird, selbst wenn ein nachfolgendes Ziel im Build davon abhängt.
MSBuild-Konzepte
Die Hauptdateierweiterung MSBuild für C++-Projekte ist .vcxproj.
Befehle werden jetzt als Aufgaben bezeichnet, und sie sind nicht nur Aufrufe von Befehlszeilenprozessen. Stattdessen handelt es sich bei Aufgaben um Einheiten ausführbaren Codes, die MSBuild zum Ausführen von Atombuildvorgängen verwenden kann. Eine vollständige Liste der Aufgaben finden Sie unter MSBuild Tasks Specific to Visual C++.
MSBuild importiert die Aufgaben aus ihren Common Language Runtime (CLR)-Assemblys mit dem UsingTask-Element , wie im folgenden Beispiel gezeigt.
<UsingTask TaskName="TaskName" AssemblyName="AssemblyName" />Zielt darauf ab, Aufgaben in einer bestimmten Reihenfolge zu gruppieren und die Aufteilung des Buildprozesses in kleinere Einheiten zu ermöglichen.
Mit einer PropertyGroup können Eigenschaften mithilfe eines menschlichen Formats definiert werden. Das folgende Beispiel zeigt das PropertyGroup-Format .
<PropertyGroup> <ProductVersion>9.0.30729</ProductVersion> </PropertyGroup>Ein Element ist eine objektorientierte Variante von Property. Während das Eigenschaftsformat Name/Wert ist, ist das Elementformat Name/Objekt, wobei das Objekt mehrere Attribute aufweist. Elemente sind Arrays von Objekten.
Auf Eigenschaften wird mit dem Format $(project) verwiesen, während elemente mit dem Format "@(name)" referenziert werden.
Eine ItemGroup ist eine Sammlung von Items.
Eine ItemGroups ist in der Regel eine Liste aller Dateien, die kompiliert werden sollen. Die Sammlung von Dateien wird dann mithilfe der @(itemname) -Notation an eine Aufgabe übergeben. Weitere Informationen zur Verwendung von Elementen finden Sie unter MSBuild Items.
MSBuild verfügt über eine Reihe integrierter Eigenschaften , auf die Sie auch in einer Projektdatei verweisen können.
Weitere Informationen zu MSBuild- und Buildaufgaben finden Sie unter MSBuild Concepts and MSBuild Reference.