2012-01-04 9 views
5

Suponiendo que esta estructura de carpetas en el TFS 2010TFS construir definición y espacio de trabajo relativa ruta

Main 
    Collection_A 
     Solution_A1 
     Solution_A2 
     Reference Assemblies 
    Collection_B 
     Solution_B1 
      Project_B1A 

Project_B1A referencias de la DLL en Reference Assemblies de Collection_A mediante el uso de ruta relativa (..\..\..\Collection_A\Reference Assemblies\Whatever.dll). Al definir la definición de compilación en TFS, tenemos problemas en la pestaña Flujo de trabajo.

Project_B1A => $(SourceDir) 

de conjuntos de referencia debe ser

Reference Assemblies => $(SourceDir)\..\..\..\Collection_A\Reference Assemblies 

pero luego TFS tiros de error

TF215083: The local path $(SourceDir)\..\..\Collection_A\Reference Assemblies for a 
workspace mapping is not valid. (Detail Message: TF10202: The path '..' ends with a 
character which is not allowed. Characters which are not allowed include '.' and ' '.) 

Hemos tratado $(SourceDir)\Collection_A\Reference Assemblies y $(BuildDir)\Collection_A\Reference Assemblies pero como se esperaba ninguno funcionó. ¿Hay alguna otra variable que pueda usarse?

+0

¡Muy bien una pregunta escrita! Sin embargo, creo que significaba la pestaña "Espacio de trabajo", no "Flujo de trabajo". – Louis

Respuesta

7

Como indica el mensaje de error, no creo que se permita el uso de la ruta relativa al definir las asignaciones de la carpeta de trabajo.

Lo que debe hacer en su lugar es iniciar la asignación desde la ruta más común de todas las rutas posibles que desea asignar (en este caso, es Main). Entonces, $ (SourceDir) debería asignarse a Main. Sin embargo, debe asignar solo el nivel superior de Main (usando el asterisco como Main/*). Esto significa que no desea asignar Main recursivamente. Luego, especifica las subcarpetas específicas de Main en otras asignaciones.

Se vería algo como:

$/Main/* -> $(SourceDir) 
$/Main/Collection_A/Reference Assemblies -> $(SourceDir)\Collection_A\Reference Assemblies 
$/Main/Collection_B/Solution_B1/Project_B1A -> $(SourceDir)Collection_B\Solution_B1\Project_B1A 

Alternativamente, si el número de caminos que no desea asignar es menor que el número de rutas que desea asignar bajo una ruta de raíz, puede asignar la ruta raíz de forma recursiva, pero de forma selectiva oculta las que no necesita.

Espero que esto ayude.

+4

De acuerdo: +1. Una nota, no establecería su primera línea '$/Main/* -> $ (SourceDir)' en absoluto, solo las dos siguientes, porque esta primera línea resultaría con la descarga de todo bajo '$/Main /'. Simplemente configurar los últimos dos debería funcionar como se desee. – pantelif

+0

Eso podría funcionar, no recuerdo exactamente si necesitamos tener la primera línea. Y gracias por aclarar que descarga los archivos y las carpetas en Main, pero no de forma recursiva. –

+1

Gracias, eso funcionó. Terminé usando $ (BuildDir) ya que los caminos se estaban haciendo demasiado largos. Además, como comentó @pantelif, no tuve que mapear el Main. –

Cuestiones relacionadas