2013-02-06 9 views
2

다른 파일의 특정 조건에 따라 속성 값을 수정하려고합니다. 예 : 대상 파일을 호출하는 파일이 하나 있습니다.msbuild, 다른 파일의 속성 값을 덮어 씁니다.

<Import Project="sample.vcxproj"/> 
<PropertyGroup> 
    <Gender>Boy</Gender> 
    <Search>UNIQUE_NAME</Search> 
</PropertyGroup> 

<Target Name="Build"> 
    <callTarget Targets="SetName"/> 
    <Message Text="$(Person)"/> 
</Target> 

내가

<ItemGroup> 
    <Name Include="UNIQUE_NAME"> 
     <Boy>DAVID</Boy> 
     <Girl>REBECCA</Girl> 
    </NAME> 
</ItemGroup> 

<Target Name="SetName"> 
    <PropertyGroup Condition="'$(Search)'=='@(Name)'"> 
     <Person>@(Name->'%($(Gender))')</Person> 
    </PropertyGroup> 
</target> 

을 수정 한 결정하는 항목 그룹을 포함 파일 및 대상을하지만 '사람'을 인쇄 할 때 내가 빈 문자열을 얻을. 그리고 'SetName'이 호출되었고 올바른 이름이 설정되었는지 확인했습니다. 여기에 무엇이 누락 되었습니까?

답변

1

를 사용하여 잘 작동합니다. DependsOnTargets을 사용하면 더 많은 속성에 액세스 할 수 있습니다. 이것이 그 방법을 사용할 때 예제가 작동하는 이유입니다.

이 문제와 관련된 기존 stackoverflow article이 있습니다.

+0

정보를 제공해 주셔서 감사합니다. –

0

그것은 'DependsOnTarget'ATTRIB 대신 callTarget 작업이 당신이 DependsOnTargets 또는 CallTarget를 사용하는지에 따라, MSBuild를 속성의 접근성과 관련이있다

관련 문제