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