Especificar eventos de compilación personalizados en Visual Studio

Visual Studio permite especificar comandos de compilación personalizados para que se ejecuten automáticamente antes de que se inicie una compilación o después de que finalice. Puede crear comandos para ejecutar un archivo .bat antes de iniciar una compilación o copiar archivos nuevos en una carpeta una vez finalizada la compilación. Los eventos de compilación personalizados se ejecutan solo si se alcanza correctamente el punto pertinente en el proceso de compilación.

En este artículo se proporciona información general sobre la sintaxis recomendada para los comandos de compilación personalizados. Si busca información sobre un lenguaje de programación específico, consulte Visual Basic, C# y F# y Visual C++.

Sugerencia

Si desea agregar operaciones complejas al proceso de compilación, explore las técnicas de personalización de MSBuild. Por ejemplo, puede agregar eventos de compilación para generar archivos de código y controlar correctamente la limpieza después de una operación clean o ejecutar solo la tarea cuando las entradas no estén actualizadas.

Sintaxis para comandos de compilación personalizados

Los comandos de compilación siguen la misma sintaxis que los comandos del símbolo del sistema de Windows y puede usar macros para crear fácilmente los eventos. Para obtener una lista de las macros disponibles, consulte Cuadro de diálogo de línea de comandos de eventos anteriores y posteriores a la compilación.

Para obtener mejores resultados, siga estas sugerencias de formato:

  • Agregue una instrucción call delante de todos los eventos de compilación que ejecutan archivos .bat.

    Ejemplo: call C:\MyFile.bat

    Ejemplo: call C:\MyFile.bat call C:\MyFile2.bat

  • Escriba las rutas de acceso entre comillas.

    Ejemplo: "%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe" -if "$(TargetPath)"

  • Separe varios comandos mediante saltos de línea.

  • Incluya caracteres comodín según sea necesario.

    Ejemplo: for %I in (*.txt *.doc *.html) do copy %I c:\<Directory>\

    Nota:

    Para un script por lotes, reemplace la variable %I de este ejemplo por %%I.