Msbuild 命名配置属性函数
我有一个项目,它有一组项目上下文(为了简洁起见,省略了完整的属性组): 这是可行的,但是有没有办法有效地定义Msbuild 命名配置属性函数,msbuild,Msbuild,我有一个项目,它有一组项目上下文(为了简洁起见,省略了完整的属性组): 这是可行的,但是有没有办法有效地定义$(LibVersionNum)=$(Configuration.Substring(0,3)),从而清理我的语法 试试这个: <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.c
$(LibVersionNum)=$(Configuration.Substring(0,3))
,从而清理我的语法 试试这个:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>v82_Release</Configuration>
<Platform>x64</Platform>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v82_Release|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v90_Release|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v90_Debug|x64' ">
</PropertyGroup>
<PropertyGroup>
<LibVersionNum>$(Configuration.Substring(0,3))</LibVersionNum>
</PropertyGroup>
<ItemGroup>
<MyItem Include="Ref1">
<HintPath>Lib\$(LibVersionNum)\Assembly1.dll</HintPath>
</MyItem>
<MyItem Include="Ref2">
<HintPath>Lib\$(LibVersionNum)\Assembly2.dll</HintPath>
</MyItem>
<MyItem Include="Ref3">
<HintPath>Lib\$(LibVersionNum)\Assembly3.dll</HintPath>
</MyItem>
</ItemGroup>
<Target Name="Build">
<Message Text="Current Config: $(Configuration)"/>
<Message Text="%(MyItem.Identity): %(MyItem.HintPath)"/>
</Target>
</Project>
v82_发布
x64
$(配置.子字符串(0,3))
Lib\$(LibVersionNum)\Assembly1.dll
Lib\$(LibVersionNum)\Assembly2.dll
Lib\$(LibVersionNum)\Assembly3.dll
<HintPath>Lib\$(Configuration.Substring(0,3))\Assembly1.dll</HintPath>
<HintPath>Lib\$(Configuration.Substring(0,3))\Assembly2.dll</HintPath>
<HintPath>Lib\$(Configuration.Substring(0,3))\Assembly3.dll</HintPath>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>v82_Release</Configuration>
<Platform>x64</Platform>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v82_Release|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v90_Release|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v90_Debug|x64' ">
</PropertyGroup>
<PropertyGroup>
<LibVersionNum>$(Configuration.Substring(0,3))</LibVersionNum>
</PropertyGroup>
<ItemGroup>
<MyItem Include="Ref1">
<HintPath>Lib\$(LibVersionNum)\Assembly1.dll</HintPath>
</MyItem>
<MyItem Include="Ref2">
<HintPath>Lib\$(LibVersionNum)\Assembly2.dll</HintPath>
</MyItem>
<MyItem Include="Ref3">
<HintPath>Lib\$(LibVersionNum)\Assembly3.dll</HintPath>
</MyItem>
</ItemGroup>
<Target Name="Build">
<Message Text="Current Config: $(Configuration)"/>
<Message Text="%(MyItem.Identity): %(MyItem.HintPath)"/>
</Target>
</Project>