Как получить последнюю часть $ (MSBuildProjectDirectory) - PullRequest
1 голос
/ 21 апреля 2010

Не могу понять, как получить последнюю часть

$ (MSBuildProjectDirectory)

Например, если значение было "c: \ development \ projects \ project_branch" тогда я хочу только последнюю часть "project_branch".

Есть идеи?

Спасибо

Sean

Ответы [ 3 ]

4 голосов
/ 18 июля 2011

В 4.0+ вы можете использовать свойства свойств, чтобы сделать это в одной строке.

В этом случае, например, $ ([System.IO.Path] :: GetDirectoryName ($ (MSBuildProjectDirectory)))

или вы можете использовать функцию String.

2 голосов
/ 23 апреля 2010
<Project DefaultTargets="BuildAll" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <Target Name="GetMSBuildProjectLocalDirectory">
        <CreateItem Include="$(MSBuildProjectDirectory)">
            <Output ItemName="MSBuildProjectDirectoryMeta" TaskParameter="Include"/>
        </CreateItem>
        <CreateProperty Value="%(MSBuildProjectDirectoryMeta.Filename)">
            <Output PropertyName="LocalDirectory" TaskParameter="Value"/>
        </CreateProperty>
    </Target>

    <Target Name="BuildAll" DependsOnTargets="GetMSBuildProjectLocalDirectory">
        <Message Text="$(LocalDirectory)" />
    </Target>

</Project>
0 голосов
/ 12 сентября 2014

Если вы следуете передовому опыту, каталог вашего проекта будет иметь то же имя, что и файл вашего проекта. Следовательно, вы должны быть в состоянии использовать:

$(MSBuildProjectName)
...