测试MSBuild属性是否包含子字符串
我在MSBuild项目中有一个属性,它是一个以分号分隔的字符串值列表。如何测试列表是否包含特定值 在下面的示例清单中,我只希望在属性$DCC_定义constains'WebDeploy'时执行目标DeployToServer 我在@Condition属性中使用了一些伪逻辑来说明我的意思。我使用的是.NET framework版本2.0.50727.3655;以及3.4.30729.1的MSBuild版本测试MSBuild属性是否包含子字符串,msbuild,Msbuild,我在MSBuild项目中有一个属性,它是一个以分号分隔的字符串值列表。如何测试列表是否包含特定值 在下面的示例清单中,我只希望在属性$DCC_定义constains'WebDeploy'时执行目标DeployToServer 我在@Condition属性中使用了一些伪逻辑来说明我的意思。我使用的是.NET framework版本2.0.50727.3655;以及3.4.30729.1的MSBuild版本 我怎样才能做到这一点?我没有能力升级到MSBuild 4。好吧,既然你不能使用属性函数,你就
我怎样才能做到这一点?我没有能力升级到MSBuild 4。好吧,既然你不能使用属性函数,你就必须有创造性
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DCC_Define>WebDeploy;DEBUG;WebDeploy</DCC_Define>
</PropertyGroup>
<Target Name="DeployToServer">
<CreateItem Include="$(DCC_Define)">
<Output TaskParameter="Include" ItemName="DCC_Define" />
</CreateItem>
<!-- Not required since MSBuild doesn't execute targets twice -->
<!-- <CreateProperty Value="True" Condition="%(DCC_Define.Identity) == WebDeploy">
<Output TaskParameter="Value" PropertyName="WebDeploy" />
</CreateProperty> -->
<CallTarget Targets="_DeployToServer" Condition="%(DCC_Define.Identity) == WebDeploy" />
</Target>
<Target Name="_DeployToServer">
<Message Text="Do something." />
</Target>
</Project>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DCC_Define>WebDeploy;DEBUG;WebDeploy</DCC_Define>
</PropertyGroup>
<Target Name="DeployToServer">
<CreateItem Include="$(DCC_Define)">
<Output TaskParameter="Include" ItemName="DCC_Define" />
</CreateItem>
<!-- Not required since MSBuild doesn't execute targets twice -->
<!-- <CreateProperty Value="True" Condition="%(DCC_Define.Identity) == WebDeploy">
<Output TaskParameter="Value" PropertyName="WebDeploy" />
</CreateProperty> -->
<CallTarget Targets="_DeployToServer" Condition="%(DCC_Define.Identity) == WebDeploy" />
</Target>
<Target Name="_DeployToServer">
<Message Text="Do something." />
</Target>
</Project>