Procedura: Aggiungere strumenti di compilazione personalizzati ai progetti MSBuild

Uno strumento di compilazione personalizzato è uno strumento da riga di comando definito dall'utente associato a un file specifico.

Per un particolare file, specificare nel file di progetto (.vcxproj) la riga di comando da eseguire, qualsiasi altro file di input o output e un messaggio da visualizzare. Se MSBuild determina che i file di output non sono aggiornati rispetto ai file di input, visualizza il messaggio ed esegue lo strumento da riga di comando.

Specificare strumenti di compilazione personalizzati e passaggi di compilazione personalizzati

Per specificare quando viene eseguito lo strumento di compilazione personalizzato, utilizzare uno o entrambi gli CustomBuildBeforeTargets elementi e CustomBuildAfterTargets XML nel file di progetto. Ad esempio, è possibile specificare che lo strumento di compilazione personalizzato venga eseguito dopo il compilatore MIDL e prima del compilatore C/C++. Specificare l'elemento per eseguire lo strumento prima dell'esecuzione CustomBuildBeforeTargets di una destinazione specifica. Usare l'elemento per eseguire lo strumento dopo l'esecuzione CustomBuildAfterTargets di una destinazione specifica. Usare entrambi gli elementi per eseguire lo strumento tra l'esecuzione di due destinazioni. Se nessuno dei due elementi viene specificato, lo strumento di compilazione personalizzato viene eseguito nella posizione predefinita, ovvero prima della destinazione MIDL .

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

Per aggiungere uno strumento di compilazione personalizzato

  1. Aggiungere un gruppo di elementi al file di progetto e aggiungere un elemento per ogni file di input. Specificare il comando e i relativi input, output e un messaggio come metadati dell'elemento, come illustrato di seguito. In questo esempio si presuppone che nella stessa directory del progetto esista un file "faq.txt". Il passaggio di compilazione personalizzato lo copia nella directory di output.

    <ItemGroup>
      <CustomBuild Include="faq.txt">
        <Message>Copying readme...</Message>
        <Command>copy %(Identity) $(OutDir)%(Identity)</Command>
        <Outputs>$(OutDir)%(Identity)</Outputs>
      </CustomBuild>
    </ItemGroup>
    

Per definire dove eseguire gli strumenti di compilazione personalizzati nella compilazione

  1. Aggiungere il gruppo di proprietà seguente al file di progetto. È necessario specificare almeno una delle destinazioni. È possibile omettere l'altro se si è interessati solo a eseguire il passaggio di compilazione prima (o dopo) una destinazione specifica. In questo esempio viene eseguito il passaggio personalizzato dopo la compilazione, ma prima del collegamento.

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

Vedi anche

Procedura dettagliata: Uso di MSBuild per creare un progetto C++
Procedura: Usare eventi di compilazione nei progetti MSBuild
Procedura: Aggiungere un passaggio di compilazione personalizzato ai progetti MSBuild
Macro comuni per i comandi e le proprietà di MSBuild
Metadati di elementi noti di MSBuild