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