首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命名配置属性函数

命名配置属性函数
EN

Stack Overflow用户
提问于 2014-12-03 17:46:30
回答 1查看 27关注 0票数 1

我有一个项目,它有一组项目上下文(为了简洁起见省略了完整的属性组):

代码语言:javascript
复制
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v82_Release|x64' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v90_Release|x64' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v90_Debug|x64' ">

引用的程序集因配置变量开头的版本号而不同,因此我打开VS生成的csproj文件并编辑引用(为简洁起见省略的父Reference项):

代码语言:javascript
复制
<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>

这是可行的,但是是否有一种方法可以有效地定义$(LibVersionNum) = $(Configuration.Substring(0,3)),从而清理我的语法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 18:31:33

试试这个:

代码语言:javascript
复制
<?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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27278270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档