无法弄清楚如何获得
的最后部分$(MSBuildProjectDirectory)
例如,如果值为“c:\ development \ projects \ project_branch” 那么,我只想要最后一部分“project_branch”。
有什么想法吗?
谢谢,
肖恩
答案 0 :(得分:4)
在4.0+中,您可以使用属性函数在一行中执行此操作。
例如在这种情况下 $([System.IO.Path] :: GetDirectoryName($(MSBuildProjectDirectory)))
或者您可以使用String函数。
答案 1 :(得分:2)
<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>
答案 2 :(得分:0)
如果您遵循最佳做法,那么您的项目目录将与项目文件具有相同的名称。因此,您应该能够使用:
$(MSBuildProjectName)