Vorgehensweise: Hinzufügen von benutzerdefinierten Buildtools zu MSBuild-Projekten
Ein benutzerdefiniertes Buildtool ist ein benutzerdefiniertes Befehlszeilentool, das einer bestimmten Datei zugeordnet ist.
Geben Sie für eine bestimmte Datei in der Projektdatei (.vcxproj
) die auszuführende Befehlszeile, alle anderen Eingabe- oder Ausgabedateien und eine anzuzeigende Meldung an. Wenn MSBuild feststellt, dass Ihre Ausgabedateien relativ zu Ihren Eingabedateien veraltet sind, wird die Meldung angezeigt und das Befehlszeilentool ausgeführt.
Angeben von benutzerdefinierten Buildtools und benutzerdefinierten Buildschritten
Um anzugeben, wann das benutzerdefinierte Buildtool ausgeführt wird, verwenden Sie eines oder beide der XML-Elemente CustomBuildBeforeTargets
und CustomBuildAfterTargets
in der Projektdatei. Sie könnten beispielsweise angeben, dass Ihr benutzerdefiniertes Buildtool nach dem MIDL-Compiler und vor dem C/C++-Compiler ausgeführt werden soll. Geben Sie das CustomBuildBeforeTargets
Element an, das das Tool ausführt, bevor ein bestimmtes Ziel ausgeführt wird. Verwenden Sie das CustomBuildAfterTargets
Element, um das Tool auszuführen, nachdem ein bestimmtes Ziel ausgeführt wurde. Verwenden Sie beide Elemente, um das Tool zwischen der Ausführung von zwei Zielen auszuführen. Wenn keines der Elemente angegeben ist, wird das benutzerdefinierte Buildtool an seinem Standardspeicherort ausgeführt, d. h. vor dem MIDL-Ziel.
Benutzerdefinierte Buildschritte und benutzerdefinierte Buildtools nutzen die in den XML-Elementen CustomBuildBeforeTargets
und CustomBuildAfterTargets
angegebenen Informationen gemeinsam. Geben Sie diese Ziele einmal in der Projektdatei an.
Hinzufügen eines benutzerdefinierten Buildtools
Fügen Sie der Projektdatei eine Elementgruppe hinzu, und fügen Sie für jede Eingabedatei ein Element hinzu. Geben Sie den Befehl und die zugehörigen Eingaben, Ausgaben und eine Nachricht als Elementmetadaten an, wie hier gezeigt. In diesem Beispiel wird davon ausgegangen, dass eine Datei „faq.txt“ im selben Verzeichnis wie Ihr Projekt vorhanden ist. Der benutzerdefinierte Buildschritt kopiert ihn in das Ausgabeverzeichnis.
<ItemGroup> <CustomBuild Include="faq.txt"> <Message>Copying readme...</Message> <Command>copy %(Identity) $(OutDir)%(Identity)</Command> <Outputs>$(OutDir)%(Identity)</Outputs> </CustomBuild> </ItemGroup>
So definieren Sie, wo im Build die benutzerdefinierten Buildtools ausgeführt werden
Fügen Sie die folgende Eigenschaftengruppe zu der Projektdatei hinzu. Sie müssen mindestens einen der Ziele angeben. Sie können den anderen weglassen, wenn Sie nur daran interessiert sind, den Buildschritt vor (oder nach) einem bestimmten Ziel auszuführen. In diesem Beispiel wird der benutzerdefinierte Schritt nach dem Kompilieren, aber vor dem Verknüpfen durchführt.
<PropertyGroup> <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets> <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets> </PropertyGroup>
Siehe auch
Exemplarische Vorgehensweise: Verwenden von MSBuild zum Erstellen eines C++-Projekts
Vorgehensweise: Verwenden von Buildereignissen in MSBuild-Projekten
Vorgehensweise: Hinzufügen eines benutzerdefinierten Buildschritts zu MSBuild-Projekten
Allgemeine Makros für MSBuild-Befehle und -Eigenschaften
Bekannte MSBuild-Elementmetadaten