Msbuild 我可以基于属性(而不仅仅是项目)进行批处理吗?
我有一个属性组,如下所示:Msbuild 我可以基于属性(而不仅仅是项目)进行批处理吗?,msbuild,Msbuild,我有一个属性组,如下所示: <PropertyGroup> <Platform>Win32;x64</Platform> </PropertyGroup> <Exec Command='devenv MySolution.sln /Build "Release|%(Platform)"' /> 我可以在列表属性上批处理任务吗?我想我可以通过创建一个带有元数据的占位符ItemGroup并在其上批处理来破解它。因为您的属性由分隔
<PropertyGroup>
<Platform>Win32;x64</Platform>
</PropertyGroup>
<Exec Command='devenv MySolution.sln /Build "Release|%(Platform)"' />
我可以在列表属性上批处理任务吗?我想我可以通过创建一个带有元数据的占位符ItemGroup并在其上批处理来破解它。因为您的属性由
分隔代码>您可以直接从中创建项目,然后从中进行批处理。比如说
<Project ToolsVersion="3.5" DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Platform>Win32;x64</Platform>
</PropertyGroup>
<Target Name="Demo">
<ItemGroup>
<_PlatFormItem Include="$(Platform)"/>
</ItemGroup>
<Message Text="Platform: $(Platform)"/>
<Message Text="_PlatFormItem: @(_PlatFormItem)"/>
<Message Text="Platform.Identity: %(_PlatFormItem.Identity)"/>
<Exec Command='devenv MySolution.sln /Build "Release|%(_PlatFormItem.Identity)"' />
</Target>
</Project>
Win32;x64
这里我使用%(\u PlatformItem.Identity)
进行批处理,因为Identity具有值(Win32和x64)。+1表示.Identity提示。%()语法不可能在谷歌上搜索到。
<Project ToolsVersion="3.5" DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Platform>Win32;x64</Platform>
</PropertyGroup>
<Target Name="Demo">
<ItemGroup>
<_PlatFormItem Include="$(Platform)"/>
</ItemGroup>
<Message Text="Platform: $(Platform)"/>
<Message Text="_PlatFormItem: @(_PlatFormItem)"/>
<Message Text="Platform.Identity: %(_PlatFormItem.Identity)"/>
<Exec Command='devenv MySolution.sln /Build "Release|%(_PlatFormItem.Identity)"' />
</Target>
</Project>