Postupy: Použití událostí sestavení v projektech MSBuildHow to: Use Build Events in MSBuild Projects

Událost sestavení je příkaz, který MSBuild provádí v konkrétní fázi procesu sestavení.A build event is a command that MSBuild performs at a particular stage in the build process. Událost před sestavením probíhá před spuštěním sestavení; událost před propojením proběhne před zahájením kroku propojení; a událost po sestavení nastane po úspěšném dokončení sestavení.The pre-build event occurs before the build starts; the pre-link event occurs before the link step starts; and the post-build event occurs after the build successfully ends. Událost sestavení nastane pouze v případě, že dojde k přidruženému kroku sestavení.A build event occurs only if the associated build step occurs. Událost před propojením například nenastane, pokud se krok propojení nespustí.For example, the pre-link event does not occur if the link step does not run.

Jednotlivé tři události sestavení jsou reprezentovány ve skupině definice položky pomocí příkazu ( <Command> ), který je proveden a elementu zprávy ( <Message> ), který se zobrazí, když nástroj MSBuild provede událost sestavení.Each of the three build events is represented in an item definition group by a command element (<Command>) that is executed and a message element (<Message>) that is displayed when MSBuild performs the build event. Každý prvek je nepovinný a pokud zadáte stejný prvek několikrát, má přednost poslední výskyt.Each element is optional, and if you specify the same element multiple times, the last occurrence takes precedence.

Volitelný element use-in-Build ( < sestavení-Event UseInBuild> ) lze zadat ve skupině vlastností, aby označoval, zda je událost sestavení provedena.An optional use-in-build element (<build-eventUseInBuild>) can be specified in a property group to indicate whether the build event is executed. Hodnota obsahu prvku pro použití v sestavení je true nebo false .The value of the content of a use-in-build element is either true or false. Ve výchozím nastavení je událost sestavení provedena, pokud není odpovídající element use-in-Build nastaven na hodnotu false .By default, a build event is executed unless its corresponding use-in-build element is set to false.

V následující tabulce jsou uvedeny jednotlivé prvky XML události sestavení:The following table lists each build event XML element:

XML – elementXML Element PopisDescription
PreBuildEvent Tato událost se spustí před zahájením sestavování.This event executes before the build begins.
PreLinkEvent Tato událost se spustí před zahájením kroku propojení.This event executes before the link step begins.
PostBuildEvent Tato událost se spustí po dokončení sestavení.This event executes after the build finishes.

V následující tabulce jsou uvedeny jednotlivé prvky pro použití v sestavení :The following table lists each use-in-build element:

XML – elementXML Element PopisDescription
PreBuildEventUseInBuild Určuje, zda se má spustit událost před sestavením .Specifies whether to execute the pre-build event.
PreLinkEventUseInBuild Určuje, zda se má spustit událost před propojením .Specifies whether to execute the pre-link event.
PostBuildEventUseInBuild Určuje, zda se má spustit událost po sestavení .Specifies whether to execute the post-build event.

PříkladExample

Následující příklad lze přidat do prvku projektu souboru MyProject. vcxproj vytvořeného v návodu: pomocí nástroje MSBuild vytvořte projekt C++.The following example can be added inside of the Project element of the myproject.vcxproj file created in Walkthrough: Using MSBuild to Create a C++ Project. Událost před sestavením vytváří kopii Main. cpp; událost před propojením vytváří kopii hlavního objektu. obj;. a událost po sestavení vytvoří kopii myproject.exe.A pre-build event makes a copy of main.cpp; a pre-link event makes a copy of main.obj; and a post-build event makes a copy of myproject.exe. Pokud je projekt sestaven pomocí konfigurace vydané verze, spustí se události sestavení.If the project is built using a release configuration, the build events are executed. Pokud je projekt sestaven pomocí konfigurace ladění, události sestavení nejsou provedeny.If the project is built using a debug configuration, the build events are not executed.

<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>

Viz také:See also

MSBuild na příkazovém řádku – C++MSBuild on the command line - C++
Návod: vytvoření projektu jazyka C++ pomocí nástroje MSBuildWalkthrough: Using MSBuild to Create a C++ Project