msbuild,覆盖不同文件中的属性值
我试图根据另一个文件中的特定条件修改属性值。 例如。 我有一个文件调用目标文件msbuild,覆盖不同文件中的属性值,msbuild,msbuild-propertygroup,msbuild-target,Msbuild,Msbuild Propertygroup,Msbuild Target,我试图根据另一个文件中的特定条件修改属性值。 例如。 我有一个文件调用目标文件 <Import Project="sample.vcxproj"/> <PropertyGroup> <Gender>Boy</Gender> <Search>UNIQUE_NAME</Search> </PropertyGroup> <Target Name="Build"> <callT
<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>
大卫
丽贝卡
@(姓名->“%($(性别))”)
但当我打印“Person”时,我得到的是空字符串。我检查了是否调用了“SetName”,是否设置了正确的名称。
我这里缺少什么?使用'DependsOnTarget'属性而不是callTarget任务可以很好地工作这与MSBuild属性的可访问性有关,具体取决于您使用的是DependsOnTargets还是callTarget。使用DependsOnTargets时,您将有更大的权限访问属性。这就是为什么您的示例在使用该方法时有效 有一种现有的方法可以说明这个问题