Delen via


Handleiding: Build-gebeurtenissen gebruiken in MSBuild-projecten

Een build-gebeurtenis is een opdracht die MSBuild uitvoert in een bepaalde fase in het buildproces. De pre-build gebeurtenis vindt plaats voordat de build wordt gestart; de pre-link gebeurtenis vindt plaats voordat de koppelingsstap begint; en de post-build gebeurtenis vindt plaats nadat de build succesvol is beƫindigd. Een build-gebeurtenis vindt alleen plaats als de bijbehorende buildstap plaatsvindt. De gebeurtenis vooraf koppelen vindt bijvoorbeeld niet plaats als de koppelingsstap niet wordt uitgevoerd.

Elk van de drie buildgebeurtenissen wordt weergegeven in een itemdefinitiegroep door een opdrachtelement (<Command>) dat wordt uitgevoerd en een berichtelement (<Message>) dat wordt weergegeven wanneer MSBuild de build-gebeurtenis uitvoert. Elk element is optioneel en als u hetzelfde element meerdere keren opgeeft, heeft het laatste exemplaar voorrang.

Een optioneel use-in-build-element (<build-eventUseInBuild>) kan worden opgegeven in een eigenschapsgroep om aan te geven of de buildgebeurtenis wordt uitgevoerd. De waarde van de inhoud van een use-in-build-element is true of false. Standaard wordt een buildgebeurtenis uitgevoerd, tenzij het bijbehorende use-in-build-element is ingesteld op false.

De volgende tabel bevat elk XML-element voor build-gebeurtenissen:

XML-element Beschrijving
PreBuildEvent Deze gebeurtenis wordt uitgevoerd voordat de build begint.
PreLinkEvent Deze gebeurtenis wordt uitgevoerd voordat de koppelingsstap begint.
PostBuildEvent Deze gebeurtenis wordt uitgevoerd nadat de build is voltooid.

De volgende tabel bevat elk use-in-build-element :

XML-element Beschrijving
PreBuildEventUseInBuild Hiermee geeft u op of de pre-buildgebeurtenis moet worden uitgevoerd.
PreLinkEventUseInBuild Hiermee geeft u op of het voorkoppelingsevent moet worden uitgevoerd.
PostBuildEventUseInBuild Hiermee geeft u op of de gebeurtenis na de build moet worden uitgevoerd.

Voorbeeld

Het volgende voorbeeld kan worden toegevoegd in het Project-element van het myproject.vcxproj-bestand dat is gemaakt in Walkthrough: MSBuild gebruiken om een C++-project te maken. Een voor-buildgebeurtenis maakt een kopie van main.cpp; een voor-linkgebeurtenis maakt een kopie van main.obj; en een na-buildgebeurtenis maakt een kopie van myproject.exe. Als het project is gebouwd met behulp van een releaseconfiguratie, worden de buildgebeurtenissen uitgevoerd. Als het project is gebouwd met behulp van een foutopsporingsconfiguratie, worden de buildgebeurtenissen niet uitgevoerd.

<ItemDefinitionGroup>
  <PreBuildEvent>
    <Command>copy $(ProjectDir)main.cpp $(ProjectDir)copyOfMain.cpp</Command>
    <Message>Making a copy of main.cpp </Message>
  </PreBuildEvent>
  <PreLinkEvent>
    <Command>copy $(ProjectDir)$(Configuration)\main.obj $(ProjectDir)$(Configuration)\copyOfMain.obj</Command>
    <Message>Making a copy of main.obj</Message>
  </PreLinkEvent>
  <PostBuildEvent>
    <Command>copy $(ProjectDir)$(Configuration)\$(TargetFileName) $(ProjectDir)$(Configuration)\copyOfMyproject.exe</Command>
    <Message>Making a copy of myproject.exe</Message>
  </PostBuildEvent>
</ItemDefinitionGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
  <PreBuildEventUseInBuild>true</PreBuildEventUseInBuild>
  <PreLinkEventUseInBuild>true</PreLinkEventUseInBuild>
  <PostBuildEventUseInBuild>true</PostBuildEventUseInBuild>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
  <PreBuildEventUseInBuild>false</PreBuildEventUseInBuild>
  <PreLinkEventUseInBuild>false</PreLinkEventUseInBuild>
  <PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
</PropertyGroup>

Zie ook

MSBuild op de opdrachtregel - C++
Walkthrough: MSBuild gebruiken om een C++-project te maken