Pagina Eventi di compilazione, Creazione progetti (C#)
Usare la pagina Eventi di compilazione di Creazione progetti per specificare le istruzioni di configurazione della build. È anche possibile specificare le condizioni in cui vengono eseguiti gli eventi di post-compilazione. Per altre informazioni, vedere Procedura: Specificare eventi di compilazione (C#) e Procedura: Specificare eventi di compilazione (Visual Basic).
Elenco degli elementi di interfaccia
Configurazione
Questo controllo non è modificabile in questa pagina. Per una descrizione di questo controllo, vedere Pagina Compilazione, Creazione progetti (C#).
Piattaforma
Questo controllo non è modificabile in questa pagina. Per una descrizione di questo controllo, vedere Pagina Compilazione, Creazione progetti (C#).
Riga di comando eventi pre-compilazione
Specifica i comandi da eseguire prima dell'avvio della compilazione. Per immettere comandi lunghi, fare clic su Modifica pre-compilazione per visualizzare la finestra di dialogo Riga di comando eventi pre-compilazione/post-compilazione.
Nota
Gli eventi di pre-compilazione non vengono eseguiti se il progetto è aggiornato e non viene attivata alcuna compilazione.
Riga di comando eventi post-compilazione
Specifica i comandi da eseguire dopo il completamento della compilazione. Per immettere comandi lunghi, fare clic su Modifica post-compilazione per visualizzare la finestra di dialogo Riga di comando eventi pre-compilazione/post-compilazione.
Nota
Aggiungere un'istruzione call
prima di tutti gli eventi di compilazione che eseguono file con estensione BAT. Ad esempio, call C:\MyFile.bat
o call C:\MyFile.bat call C:\MyFile2.bat
.
Esegui evento post-compilazione
Specifica le condizioni seguenti per l'esecuzione dell'evento di post-compilazione, come illustrato in questa tabella.
Opzione | Risultato |
---|---|
Sempre | L'evento di post-compilazione verrà sempre eseguito, indipendentemente dall'esito della compilazione. |
A compilazione completata | L'evento di post-compilazione verrà eseguito se la compilazione avrà esito positivo. L'evento verrà quindi eseguito anche per un progetto aggiornato, purché la compilazione abbia esito positivo. |
Quando la compilazione aggiorna l'output del progetto | L'evento di post-compilazione verrà eseguito solo quando il file di output del compilatore (con estensione exe o dll) è diverso dal file di output del compilatore precedente. L'evento di post-compilazione non viene quindi eseguito se un progetto è aggiornato. |
Nel file di progetto
Nelle versioni precedenti di Visual Studio, quando si modifica l'impostazione PreBuildEvent o PostBuildEvent nell'IDE, Visual Studio aggiunge una PreBuildEvent
proprietà o PostBuildEvent
al file di progetto. Ad esempio, se l'impostazione della riga di comando PreBuildEvent nell'IDE è la seguente:
"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"
quindi l'impostazione del file di progetto è:
<PropertyGroup>
<PreBuildEvent>"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)" />
</PropertyGroup>
Per i progetti .NET Core, Visual Studio 2019 (e Visual Studio 2017 negli aggiornamenti più recenti) aggiunge una destinazione MSBuild denominata PreBuild
o PostBuild
per le impostazioni PreBuildEvent e PostBuildEvent . Queste destinazioni usano gli attributi BeforeTargets e AfterTargets , riconosciuti da MSBuild. Ad esempio, per l'esempio precedente, Visual Studio genera ora il codice seguente:
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command=""$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"" />
</Target>
Per un evento post-compilazione, usare il nome PostBuild
e impostare l'attributo AfterTargets
su PostBuildEvent
.
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="echo Output written to $(TargetDir)" />
</Target>
Nota
Queste modifiche ai file di progetto sono state apportate per supportare progetti in stile SDK. Se si esegue manualmente la migrazione di un file di progetto dal formato precedente al formato in stile SDK, è necessario eliminare le PreBuildEvent
proprietà e PostBuildEvent
e sostituirle con PreBuild
e PostBuild
destinazioni, come illustrato nel codice precedente. Per informazioni su come stabilire se il progetto è un progetto in stile SDK, vedere Controllare il formato del progetto.