Porady: korzystanie ze zdarzeń kompilacji w projektach MSBuild
Zdarzenie kompilacji to polecenie, które program MSBuild wykonuje na określonym etapie procesu kompilacji. Zdarzenie przed rozpoczęciem kompilacji następuje przed rozpoczęciem kompilacji; zdarzenie przed rozpoczęciem kroku połączenia , a zdarzenie po kompilacji następuje po pomyślnym zakończeniu kompilacji. Zdarzenie kompilacji występuje tylko wtedy, gdy wystąpi skojarzony krok kompilacji. Na przykład zdarzenie przed łączem nie występuje, jeśli krok łącza nie zostanie uruchomiony.
Każde z trzech zdarzeń kompilacji jest reprezentowane w grupie definicji elementu przez element polecenia (<Command>
), który jest wykonywany i element komunikatu (<Message>
), który jest wyświetlany, gdy MSBuild wykonuje zdarzenie kompilacji. Każdy element jest opcjonalny, a jeśli określisz ten sam element wiele razy, ostatnie wystąpienie ma pierwszeństwo.
Opcjonalny element use-in-build (<
build-eventUseInBuild>
) można określić w grupie właściwości, aby wskazać, czy zdarzenie kompilacji jest wykonywane. Wartość zawartości elementu use-in-build ma true
wartość lub false
. Domyślnie zdarzenie kompilacji jest wykonywane, chyba że odpowiedni element use-in-build ma wartość false
.
W poniższej tabeli wymieniono każdy element XML zdarzenia kompilacji:
XML, element | opis |
---|---|
PreBuildEvent |
To zdarzenie jest wykonywane przed rozpoczęciem kompilacji. |
PreLinkEvent |
To zdarzenie jest wykonywane przed rozpoczęciem kroku łącza. |
PostBuildEvent |
To zdarzenie jest wykonywane po zakończeniu kompilacji. |
W poniższej tabeli wymieniono każdy element use-in-build :
XML, element | opis |
---|---|
PreBuildEventUseInBuild |
Określa, czy należy wykonać zdarzenie przed kompilacją. |
PreLinkEventUseInBuild |
Określa, czy należy wykonać zdarzenie przed łączem . |
PostBuildEventUseInBuild |
Określa, czy wykonać zdarzenie po kompilacji . |
Przykład
Poniższy przykład można dodać wewnątrz elementu Project pliku myproject.vcxproj utworzonego w przewodniku: Tworzenie projektu W języku C++ przy użyciu programu MSBuild. Zdarzenie przed kompilacją tworzy kopię main.cpp; zdarzenie wstępne tworzy kopię main.obj, a zdarzenie po kompilacji tworzy kopię myproject.exe. Jeśli projekt jest kompilowany przy użyciu konfiguracji wydania, są wykonywane zdarzenia kompilacji. Jeśli projekt jest kompilowany przy użyciu konfiguracji debugowania, zdarzenia kompilacji nie są wykonywane.
<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>
Zobacz też
Program MSBuild w wierszu polecenia — C++
Przewodnik: tworzenie projektu C++ przy użyciu programu MSBuild