2011-06-07 16 views
7

En Nant tengo una muy simple propiedad para obtener la raíz de mi proyecto, parece que este ...obtener el directorio padre en MSBuild

<property name="project.root.folder" 
      value="${directory::get-parent-directory(directory::get-parent-directory(project.local.folder))}" /> 

Esto me lleva hasta la raíz de mi proyecto a partir del cual Construyo todos mis caminos

En MSBuild puedo usar $ (MSBuildProjectDirectory) para obtener mi directorio actual, pero me gustaría obtener la ruta completa del directorio padre. NAnt usa el directorio :: get-parent-directory que funciona como un hechizo y espero que haya algo similar disponible en MSBuild.

Encontré una pregunta similar anterior (http://stackoverflow.com/questions/514264/msbuild-find-msbuildprojectdirectory-parent-directory) pero estoy pensando que debe haber algo más simple disponible, ¡seguro!

Sam:)

+0

Parece que qué? Ajá, lo arregló para ti! – alternative

+0

jaja, no estoy seguro de cómo lo hizo, pero gracias! – samaspin

+0

BAMBAM: sangría con 4 espacios. – alternative

Respuesta

13

Estoy asumiendo que esto es MSBuild 4.0. Puede hacer esto:

<PropertyGroup> 
    <RootFolder>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))</RootFolder> 
</PropertyGroup> 
<Message Text="RootFolder: '$(RootFolder)'" /> 
+0

parece ser la versión 3.5, lástima, tal vez es hora de actualizar! – samaspin

+0

¿Es este un proyecto VS 2010 o 2008? –

+0

¿No le devolverá eso el directorio del proyecto? ¿Lo mismo que si usaras $ (MSBuildProjectDirectory) en sí mismo? –

0

La pregunta tiene que envió su respuesta, y parece ser uno decente. MSBuild se basa en proyectos y no en soluciones, por lo que encontrar algo que le proporcione una ruta de solución requiere un poco de personalización. Un hecho a tener en cuenta es que para muchos proyectos, los archivos de solución no se encuentran en la raíz del árbol del proyecto (o 'cono' en el lenguaje MSBuild).

MSBuild Reserved Properties

+0

Eso me da la ruta C: \ GIT \ NAntTest \ build y quiero C: \ GIT \ NAntTest como una propiedad, así que puedo usarlo como un bloque de inicio para todas mis URL relativas – samaspin

+0

BAMBAM - Oh, tú quieres la solución completa ¡camino! Lo tengo. (suponiendo que el proyecto es relativo a la solución). –

Cuestiones relacionadas