Не могу понять, как получить последнюю часть
$ (MSBuildProjectDirectory)
Например, если значение было "c: \ development \ projects \ project_branch" тогда я хочу только последнюю часть "project_branch".
Есть идеи?
Спасибо
Sean
В 4.0+ вы можете использовать свойства свойств, чтобы сделать это в одной строке.
В этом случае, например, $ ([System.IO.Path] :: GetDirectoryName ($ (MSBuildProjectDirectory)))
или вы можете использовать функцию String.
<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>
Если вы следуете передовому опыту, каталог вашего проекта будет иметь то же имя, что и файл вашего проекта. Следовательно, вы должны быть в состоянии использовать:
$(MSBuildProjectName)