Condividi tramite


Procedura: aggiungere un'istruzione di compilazione personalizzata a progetti MSBuild

Un passaggio di compilazione personalizzato è un passaggio definito dall'utente in una compilazione. Un passaggio di compilazione personalizzato si comporta come qualsiasi altro passaggio dello strumento di comando, ad esempio il passaggio standard dello strumento di compilazione o collegamento.

Specificare un passaggio di compilazione personalizzato nel file di progetto (con estensione vcxproj). Il passaggio può specificare una riga di comando da eseguire, eventuali file di input o output aggiuntivi e un messaggio da visualizzare. Se MSBuild determina che i file di output non sono aggiornati in relazione ai file di input, visualizza il messaggio ed esegue il comando.

Per specificare il percorso del passaggio di compilazione personalizzato nella sequenza di destinazioni di compilazione, utilizzare uno o entrambi gli CustomBuildAfterTargets elementi e CustomBuildBeforeTargets XML nel file di progetto. Ad esempio, è possibile specificare che il passaggio di compilazione personalizzato viene eseguito dopo la destinazione dello strumento di collegamento e prima della destinazione dello strumento manifesto. Il set effettivo di destinazioni disponibili dipende dalla compilazione specifica.

Specificare l'elemento CustomBuildBeforeTargets per eseguire il passaggio di compilazione personalizzato prima dell'esecuzione di una determinata destinazione, l'elemento CustomBuildAfterTargets da eseguire dopo l'esecuzione di una destinazione specifica o entrambi gli elementi per eseguire il passaggio tra due destinazioni adiacenti. Se nessuno dei due elementi viene specificato, lo strumento di compilazione personalizzato viene eseguito nella posizione predefinita, ovvero dopo la destinazione collegamento .

I passaggi di compilazione personalizzati e gli strumenti di compilazione personalizzati condividono le informazioni specificate negli CustomBuildBeforeTargets elementi e CustomBuildAfterTargets XML. Pertanto, specificare tali destinazioni una sola volta nel file di progetto.

Per definire ciò che viene eseguito dal passaggio di compilazione personalizzato

  1. Aggiungere un gruppo di proprietà al file di progetto. In questo gruppo di proprietà specificare il comando, gli input e gli output e un messaggio, come illustrato nell'esempio seguente. Questo esempio crea un file CAB dal file main.cpp creato in Procedura dettagliata: Uso di MSBuild per creare un progetto C++.

    <ItemDefinitionGroup>
      <CustomBuildStep>
        <Command>makecab.exe $(ProjectDir)main.cpp $(TargetName).cab</Command>
        <Outputs>$(TargetName).cab</Outputs>
        <Inputs>$(ProjectDir)main.cpp</Inputs>
      </CustomBuildStep>
    </ItemDefinitionGroup>
    

Per definire dove verrà eseguito il passaggio di compilazione personalizzato nella compilazione

  1. Aggiungere il gruppo di proprietà seguente al file di progetto. È possibile specificare entrambe le destinazioni oppure ometterne una se si vuole eseguire il passaggio personalizzato prima o dopo una determinata destinazione. Questo esempio indica a MSBuild di eseguire il passaggio personalizzato dopo il passaggio di compilazione, ma prima del passaggio di collegamento.

    <PropertyGroup>
      <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets>
      <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets>
    </PropertyGroup>
    

Vedi anche

Procedura dettagliata: Uso di MSBuild per creare un progetto C++
Procedura: Uso di eventi di compilazione in progetti MSBuild
Procedura: Aggiungere uno strumento di compilazione personalizzato a progetti MSBuild