Compartir a través de


Eventos de compilación (Página, Diseñador de proyectos) (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 Procedimientos: Especificar eventos de compilación (Visual Basic).

Lista de UIElement

Configuración

Este control no se puede modificar en esta página. Para obtener una descripción de este control, vea Página Compilar Diseñador de proyectos (C#).

Plataforma

Este control no se puede modificar en esta página. Para obtener una descripción de este control, vea Página Compilar Diseñador de proyectos (C#).

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

Especifica los comandos que se van a ejecutar antes de que empiece la compilación. Para escribir comandos largos, haga clic en Edición anterior a la compilación para mostrar el cuadro de diálogo Línea de comandos del evento anterior a la compilación/Línea de comandos del evento posterior 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 Edición posterior a la compilación para mostrar el cuadro de diálogo Línea de comandos del evento anterior a la compilación/Línea de comandos del evento posterior a la compilación.

Nota

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

Ejecutar el 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 es correcta El evento posterior a la compilación se ejecuta si la compilación se realiza correctamente. Por lo tanto, el evento se ejecutará incluso para un proyecto actualizado, 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 si el archivo de salida del compilador (.exe o .dll) es diferente del anterior archivo de salida del compilador. Por lo tanto, un evento posterior a la compilación no se ejecuta si un proyecto está actualizado.

En el archivo del proyecto

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

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

entonces la configuración del archivo del proyecto es:

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

Para los proyectos de .NET Core, Visual Studio 2019 (y Visual Studio 2017 en las actualizaciones más recientes), agrega un destino de MSBuild denominado PreBuild o PostBuild para las configuraciones de PreBuildEvent y PostBuildEvent. Estos destinos usan los atributos BeforeTargets y AfterTargets, que MSBuild reconoce. Por ejemplo, en el ejemplo anterior, Visual Studio genera ahora el siguiente código:

<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 AfterTargets en PostBuildEvent.

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

Nota

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

Consulta también