6

La pestaña de depuración de las propiedades del proyecto para una aplicación de consola en VS2010 me permite establecer parámetros de línea de comando para pasar al proyecto durante la depuración.Ruta del proyecto u otra macro en parámetros de línea de comandos para proyecto de consola en VS2010

Me gustaría establecer un parámetro que sea una ruta y la ruta sea específica para cada desarrollador/máquina, ya que es una ruta que reside en la carpeta de la solución y cada entorno es diferente.

Para eventos previos y posteriores a la construcción, puedo usar macros como $(ProjectDir), pero no puedo encontrar la forma de hacerlo para los parámetros de la línea de comandos. ¿Hay alguna manera? Un truco está bien, ¡siempre y cuando no sea demasiado horrible!

Gracias

Respuesta

2

no he encontrado una manera de utilizar $(ProjectDir) en los argumentos de línea de comandos, pero se puede acceder a los archivos contenidos en el proyecto por:

  • indicar a Visual Studio para copiar archivos específicos para el directorio de salida cambiando su propiedad "Copiar al directorio de salida".
  • Cambie los argumentos de la línea de comandos de $(ProjectDir)/FileNeededDuringRuntime a FileNeededDuringRuntime.

Esto es más un hack ya que probablemente no cubra todos los casos de uso de la variable, pero puede que lo consiga si solo está haciendo referencia a algunos archivos.

1

macros se pueden utilizar en los argumentos de línea de comandos para proyectos de C++, consulte:

How to pass solution folder as parameter in command line arguments (for debug)?

usted podría tener un ++ proyecto "Establecer como proyecto de inicio" C vacío y cambiar su "Propiedades de configuración -> Depuración - > Comando "desde" $ (TargetPath) "(predeterminado para nuevos proyectos) a" $ (ProjectDir) .. \ OtherProjectRelativeDebugFolder \ OtherProjectsOutputFileName.exe ".

Dado que OtherProjectRelativeDebugFolder y OtherProjectsOutputFileName son relativos y, por lo tanto, independientes de la ubicación, debería estar bien con eso.

Dijiste:

Un truco está bien, siempre y cuando no es demasiado horrible!

¿Es un proyecto vacío que produce un dll vacío (a menos que encuentre una forma de detenerlo, por ejemplo, eliminar en la construcción posterior) demasiado horrible?

BTW. Las variables de entorno no se resuelven en "Debug -> argumentos de línea de comando" para C# tampoco. Voy a experimentar con establecer una variable de entorno, pasar su nombre (porque no está resuelto) y leerlo en el programa. Al pasar el nombre se pretende mostrar de dónde viene la variable de entorno, es decir, la configuración del proyecto.

Edit: Esperaba encontrar una forma de establecer la variable de entorno en el valor de una macro, p. Ej. en un evento de construcción. Un comando de shell "set" simple no es persistente, por lo que no funcionó. En cambio, pude usar una ruta relativa como carpeta de trabajo para que las cosas funcionen para mí. También encontré una solución que utiliza un archivo para el almacenamiento persistente: VS2010 - Project Macro Variables in Start Options Command Line Arguments

Cuestiones relacionadas