2014-12-03 2 views
1

명명 I있다 (간략화를 위해 생략 전체 속성 그룹) 프로젝트 컨텍스트 설정 한 프로젝트 :구성 등록 기능

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v82_Release|x64' "> 
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v90_Release|x64' "> 
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'v90_Debug|x64' "> 

참조 된 어셈블리 구성 초에 버전 번호가 변화를 변수, 그래서 VS 생성 csproj 파일을 열고 참조를 (Reference 항목은 간결함을 위해 생략 부모) 편집 :이 작동

<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))와 목을 정의하는 방법이 내 구문을 정리합니까?

답변

1

이 시도 :

<?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>