如何使用Msbuild中的Property函数查找当前工作目录驱动器号?

时间:2014-12-11 05:51:44

标签: c# msbuild msbuild-4.0

我有以下属性

<DynamicViewDrive Condition="'$(DynamicViewDrive)' == ''">U:</DynamicViewDrive>

每当我更改我的文件夹而不是U:驱动器时,我必须编辑此属性。

如何使用Msbuild中的Propertyfunction获取当前的驱动器号?

2 个答案:

答案 0 :(得分:4)

这将是当前项目文件的驱动器号:

<Drive Condition=" '$(Drive)' == '' ">$([System.IO.Path]::GetPathRoot($(MSBuildProjectFullPath)))</Drive>

答案 1 :(得分:1)

这是执行此操作的旧式方法,这次使用的是项目而不是属性。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="ShowDrive" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <Drive Include="$(MSBuildProjectFullPath)"/>
    </ItemGroup>    

    <Target Name="ShowDrive">
        <Message Text="Drive: %(Drive.RootDir)"/>
    </Target>
</Project>

这样,如果需要,您可以使用MSBuildProjectFullPath属性中的其他Well known item metadata