Udostępnij za pośrednictwem


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