Postupy: Použití událostí sestavení v projektech MSBuild

Událost sestavení je příkaz, který nástroj MSBuild provádí v určité fázi procesu sestavení. Událost před sestavením nastane před spuštěním sestavení; událost před propojením nastane před zahájením kroku propojení a událost po sestavení proběhne po úspěšném ukončení sestavení. Událost sestavení nastane pouze v případě, že dojde k přidruženému kroku sestavení. Například událost před propojením se nespustí, pokud se krok propojení nespustí.

Každá ze tří událostí sestavení je reprezentována ve skupině definic položek pomocí elementu příkazu (<Command>), který se spustí, a element zprávy (<Message>), který se zobrazí, když MSBuild provede událost sestavení. Každý prvek je nepovinný a pokud zadáte stejný prvek vícekrát, má přednost poslední výskyt.

Volitelný element use-in-build (<build-eventUseInBuild>) lze zadat ve skupině vlastností, aby bylo možné určit, zda je událost sestavení spuštěna. Hodnota obsahu prvku use-in-build je buď true nebo false. Ve výchozím nastavení je událost sestavení spuštěna, pokud odpovídající use-in-build element není nastaven na false.

Následující tabulka uvádí každý element XML události sestavení:

XML Element Popis
PreBuildEvent Tato událost se spustí před zahájením sestavení.
PreLinkEvent Tato událost se spustí před zahájením kroku propojení.
PostBuildEvent Tato událost se spustí po dokončení sestavení.

Následující tabulka uvádí každý prvek use-in-build :

XML Element Popis
PreBuildEventUseInBuild Určuje, jestli se má spustit událost před sestavením.
PreLinkEventUseInBuild Určuje, jestli se má spustit událost před propojením.
PostBuildEventUseInBuild Určuje, zda se má spustit událost po sestavení .

Příklad

Následující příklad lze přidat uvnitř project elementu myproject.vcxproj souboru vytvořeného v návodu: Použití nástroje MSBuild k vytvoření projektu C++. Předpřipravená událost vytvoří kopii main.cpp; událost před propojením vytvoří kopii main.obj; a událost po sestavení vytvoří kopii myproject.exe. Pokud je projekt sestaven pomocí konfigurace vydané verze, události sestavení se spustí. Pokud je projekt sestaven pomocí konfigurace ladění, události sestavení se nespustí.

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

NÁSTROJ MSBuild na příkazovém řádku – C++
Návod: Vytvoření projektu C++ pomocí nástroje MSBuild