Compartir a través de


Eventos de compilación (Página, Diseñador de proyectos) (C#)

Nota:

Esta página se aplica a Visual Studio 2019. Si usa Visual Studio 2022, el diseñador de proyectos para .NET Core y .NET 5 y proyectos posteriores es bastante diferente. Consulte Especificar eventos de compilación (C#).

Use la página Eventos de compilación del Diseñador de proyectos para especificar las instrucciones de configuración de compilación. También puede especificar las condiciones en las que se ejecutan los eventos posteriores a la compilación. Para obtener más información, vea Cómo: Especificar eventos de compilación (C#) y Cómo: Especificar eventos de compilación (Visual Basic).

Lista de UIElement

Configuración

Este control no se puede editar en esta página. Para obtener una descripción de este control, vea Build Page, Project Designer (C#).

Plataforma

Este control no se puede editar en esta página. Para obtener una descripción de este control, vea Build Page, Project Designer (C#).

Línea de comandos del evento anterior a la compilación

Especifica los comandos que se van a ejecutar antes de que se inicie la compilación. Para escribir comandos largos, haga clic en Editar compilación previa para mostrar el cuadro de diálogo Pre-build Event/Post-build Event Command Line (Línea de comandos del evento anterior a la compilación).

Nota:

Los eventos anteriores a la compilación no se ejecutan si el proyecto está actualizado y no se desencadena ninguna compilación.

Línea de comandos del evento posterior a la compilación

Especifica los comandos que se van a ejecutar después de que finalice la compilación. Para escribir comandos largos, haga clic en Editar posterior a la compilación para mostrar el cuadro de diálogo Pre-build Event/Post-build Event Command Line (Línea de comandos del evento posterior a la compilación).

Nota:

Agregue una call instrucción antes de todos los comandos posteriores a la compilación que ejecutan .bat archivos. Por ejemplo, call C:\MyFile.bat o call C:\MyFile.bat call C:\MyFile2.bat.

Ejecución del evento posterior a la compilación

Especifica las condiciones siguientes para que se ejecute el evento posterior a la compilación, como se muestra en la tabla siguiente.

Opción Resultado
siempre El evento posterior a la compilación se ejecuta independientemente de si la compilación se realiza correctamente.
Si la compilación se ha realizado correctamente El evento posterior a la compilación se ejecuta si la compilación se realiza correctamente. Por lo tanto, el evento se ejecuta incluso para un proyecto que es up-to-date, siempre y cuando la compilación se realice correctamente.
Cuando la compilación actualiza la salida del proyecto El evento posterior a la compilación solo se ejecuta cuando el archivo de salida del compilador (.exe o .dll) es diferente del archivo de salida del compilador anterior. Por lo tanto, un evento posterior a la compilación no se ejecuta si un proyecto está up-to-date.

En el archivo del proyecto

En versiones anteriores de Visual Studio, al cambiar la configuración PreBuildEvent o PostBuildEvent en el IDE, Visual Studio agrega una PreBuildEvent propiedad o PostBuildEvent al archivo de proyecto. Por ejemplo, si la configuración de la línea de comandos preBuildEvent en el IDE es la siguiente:

"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"

a continuación, la configuración del archivo de proyecto es:

<PropertyGroup>
    <PreBuildEvent>"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)" />
</PropertyGroup>

En el caso de los proyectos de .NET Core, Visual Studio agrega un destino de MSBuild denominado PreBuild o PostBuild para la configuración de PreBuildEvent y PostBuildEvent . Estos destinos usan los atributos BeforeTargets y AfterTargets , que MSBuild reconoce. Por ejemplo, para el ejemplo anterior, Visual Studio ahora genera el código siguiente:

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="&quot;$(ProjectDir)PreBuildEvent.bat&quot; &quot;$(ProjectDir)..\&quot; &quot;$(ProjectDir)&quot; &quot;$(TargetDir)&quot;" />
</Target>

Para un evento posterior a la compilación, use el nombre PostBuild y establezca el atributo AfterTargetsPostBuildEvent en .

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
   <Exec Command="echo Output written to $(TargetDir)" />
</Target>

Nota:

Estos cambios en el archivo de proyecto se realizaron para admitir proyectos de estilo SDK. Si va a migrar manualmente un archivo de proyecto del formato antiguo al formato de estilo SDK, debe eliminar las PreBuildEvent propiedades y PostBuildEvent y reemplazarlas por PreBuild y PostBuild destinos, como se muestra en el código anterior. Para averiguar cómo saber si el proyecto es un proyecto de estilo SDK, consulte Comprobación del formato del proyecto.

Consulte también