Respuesta

30

Sí, al agregarle una llamada en el editor de eventos posterior a la compilación.

Si va a la página Propiedades de su proyecto, debe seleccionar la pestaña Generar eventos. Puede escribir la llamada a su archivo por lotes en el cuadro de texto Línea de comando posterior al desarrollo.

Si desea hacer referencia al archivo por lotes utilizando las rutas incluidas en el proyecto o la solución, puede hacer clic en Editar publicación posterior a la publicación ... botón. Esto abrirá el cuadro de diálogo Línea de comando de evento posterior a la construcción.

Este cuadro de diálogo tiene un Macros >> botón que puede hacer clic. Le mostrará todas las Macros disponibles que puede usar para referirse a carpetas y archivos dentro de su solución.

Al seleccionar una de esas macros, puede usar el botón Insertar para insertarlas en su secuencia de comandos.

+0

+1 pero para mayor información, observe el comentario de divo sobre la respuesta de Jon Skeet al usar las macros para especificar rutas para archivos por lotes específicos del proyecto . – AAT

+1

La respuesta mencionada anteriormente ya no existe. El seguimiento de comentarios fue Q. "¿Cómo le doy la ruta al archivo por lotes?" y el comentario en respuesta fue A. "Puede usar una ruta codificada o, mejor, usar las variables disponibles cuando hace clic en el botón" Macros ". Por ejemplo," $ (ProjectDir) "(sin el comillas) será el directorio donde reside el archivo de proyecto de Visual Studio " –

+0

¿Cómo hacerlo para una solución completa en lugar de un proyecto individual? –

8

Además de llamar a un archivo .bat, puede ingresar comandos de proceso por lotes (es decir, los comandos normales disponibles desde la consola de Windows - cmd.exe) directamente en los campos de Preconstrucción/Postconstrucción. Esto puede ser preferible ya que significa que no tiene que mantener el archivo por lotes por separado, ya que todos sus comandos serán parte del proyecto.

92

Claro, he aquí un ejemplo:

call "$(SolutionDir)scripts\copyifnewer.bat" "$(SolutionDir)libs\RLPL.Services.CertificateValidator.Basic.dll" "$(TargetDir)RLPL.Services.CertificateValidator.Basic.dll" 
call "$(SolutionDir)scripts\copyifnewer.bat" "$(SolutionDir)libs\RLPL.Services.CertificateValidator.Common.dll" "$(TargetDir)RLPL.Services.CertificateValidator.Common.dll" 

acaba de ser conscientes de las 2 posibles problemas que pueda tener:
1) las comillas que encierran (ver cómo cada parte está rodeado por " signo)
2) si desea llamar a 2 o más archivos por lotes, asegúrese de utilizar el comando call, de lo contrario, tendrá problemas para encontrar la razón por la cual el segundo bate no está haciendo su trabajo

+12

gracias por una nota sobre "llamada", resuelve mi problema con la ejecución de multiplicar. – EvgeniyK

+2

Aunque SO ahora me pide que no explique mi gratitud: +1 para el punto 2) – slater

+1

Puede ser necesario cambiar el directorio actual, ya que de manera predeterminada se ejecuta dentro de la carpeta 'Bin'. Necesitaba ejecutar dentro del directorio de la solución, así que para mí fue: 'call cd $ (SolutionDir)' como primera línea en los eventos Post-build. –

Cuestiones relacionadas