如何通过可以解析为项目组的命令行将属性传递给MSBuild?

如何通过可以解析为项目组的命令行将属性传递给MSBuild?,msbuild,Msbuild,我有以下MSBuild脚本: <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Main" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <PropertyGroup> <build_configurations>test1;test2;t

我有以下MSBuild脚本:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Main" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">    
  <PropertyGroup>
    <build_configurations>test1;test2;test3</build_configurations>
  </PropertyGroup>    
  <ItemGroup>
    <BuildConfigurations Include="$(build_configurations)" />
  </ItemGroup>    
  <Target Name="Main">    
    <Message Text="Running with args: %(BuildConfigurations.Identity)" />
  </Target>
</Project>
但是,当我尝试通过命令行设置属性时,如下所示:

msbuild [myscript] /p:build_configurations=test5%3btest6%3btest7
我得到以下信息:

Running with args: test5;test6;test7
因此,它并不像预期的那样进行批处理。我需要让MSBuild创建包含三个项而不是一个项的项组。我该怎么做?谢谢


另外,以下文章基本上解决了我的问题,但我想传递分号分隔的值的情况除外:

您已转义了分号,防止MSBuild将其作为单个项进行解析。改为这样运行,带引号

msbuild [myscript] /p:build_configurations="test5;test6;test7"
您将获得以下输出

Running with args: test5
Running with args: test6
Running with args: test7
Running with args: test5
Running with args: test6
Running with args: test7