получить родительский каталог в MSBuild - PullRequest
8 голосов
/ 08 июня 2011

В NAnt у меня есть очень простое свойство, чтобы получить рут моего проекта, это выглядит так ::

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

Это подводит меня к корню моего проекта, из которого я строю все свои пути.

В MSBuild я могу использовать $(MSBuildProjectDirectory), чтобы получить мой текущий каталог, но я бы хотел получить полный путь к родительскому каталогу. NAnt использует directory::get-parent-directory, который работает с шармом, и я надеюсь, что в MSBuild есть что-то похожее.

Я нашел предыдущий аналогичный вопрос (/517687/naiti-roditelskii-katalog-msbuildprojectdirectory), но я думаю, что должно быть что-то более простое, конечно!

Сэм:)

Ответы [ 2 ]

14 голосов
/ 08 июня 2011

Я предполагаю, что это MSBuild 4.0.Вы можете сделать это:

<PropertyGroup>
     <RootFolder>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))</RootFolder>
</PropertyGroup>
<Message Text="RootFolder: '$(RootFolder)'" />
1 голос
/ 08 июня 2011

На ваш вопрос есть ваш ответ, и он выглядит достойным.MSBuild построен на проектах, а не на решениях, поэтому поиск того, что даст вам путь решения, требует некоторой настройки.Следует учитывать один факт: во многих проектах файлы решений не находятся в корне дерева проекта (или «конус» на языке MSBuild).

Зарезервированные свойства MSBuild

...