ruta manipular gettempfilename directorios crear archivos archivo absoluta c# visual-studio-2008 build

manipular - Visual Studio(C#) Build Ruta de salida utilizando variables de entorno



path gettempfilename() (5)

Debe abrir el archivo csproj en un editor de texto e ingresar manualmente sus variables de entorno en la sección OutputPath. Visual Studio escapa a ''$'', ''('' y '')'' cuando intenta hacer esto desde el IDE.

¿Es posible usar variables ambientales en la ruta de salida de compilación en VS 2008 (et al) / Estoy tratando de encontrar una solución donde varios desarrolladores de mi equipo que usan tanto Windows XP y 7 y todos con inicios de sesión de Windows diferentes, todos pueden modificar proyectos y dll de referencia común (fuente retenida en Source Safe) y no arruinar las rutas relativas? He intentado cosas como% userprofile% y $ (userprofile).

He investigado los eventos de compilación de publicaciones, pero estos no parecen dar respuesta a mi problema. Lamentablemente, no estoy en posición de utilizar complementos de terceros, ya que no serán comerciales y es casi imposible obtener la autorización para obtener licencias para ellos.

(Pregunta similar sin respuesta en la ruta de salida para construir en visual studio 2010 )


PaulTee, ¿es una tentación pedirle que pruebe la replicación del directorio? ¿Como Dropbox / Synctoy y otras herramientas que invocan una copia de archivo desde la ubicación elegida a la ubicación compartida esperada?

En su situación, me encantaría usar las variables de entorno integradas. Probablemente hay una forma de hacerlo funcionar, pero hasta entonces buscaría esa solución. También me gustaría tener en cuenta que los diferentes usuarios que compilan en el mismo directorio, generarían conflictos con las versiones de archivos y los bloqueos de archivos (utilizados por otros usuarios).



Si no le molestan las copias adicionales, puede agregar un evento posterior a la compilación que copie los resultados del proyecto en una ubicación comúnmente acordada para las dlls compartidas, y todos usan una referencia no relativa a esa ubicación. Aún así, sin embargo, requerirá la estandarización de esa ubicación de destino, por lo que tal vez no sea lo que está buscando. (El ejemplo siguiente permitiría, al menos, la independencia de la letra de unidad)

copiar $ (TargetPath) / dependencias


He usado el comando subst para lograr este tipo de cosas en el pasado. Esencialmente, todas las referencias de proyectos definen rutas en relación con una letra de unidad conocida como R:/MyProject/outputs .

Entonces, cada desarrollador puede mapear la unidad R: (o lo que sea) a la estructura de carpetas particular de su entorno. Siempre que la estructura de la carpeta debajo de la unidad asignada sea la misma, la ubicación de esa carpeta asignada puede variar entre máquinas, construcciones y usuarios.

Esto funciona bien ya que los desarrolladores pueden configurar su entorno con un simple archivo de proceso por lotes y cambiar fácilmente entre sucursales, proyectos, etc. y la ruta relativa dentro de los proyectos no se rompe.