我有以下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>
Run Code Online (Sandbox Code Playgroud)
如果我在没有任何参数的情况下调用脚本,我会得到预期的响应:
Running with args: test1
Running with args: test2
Running with args: test3
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试通过命令行设置属性时,如下所示:
msbuild [myscript] /p:build_configurations=test5%3btest6%3btest7
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:
Running with args: test5;test6;test7
Run Code Online (Sandbox Code Playgroud)
所以,它没有按预期进行批处理.我需要让MSBuild创建具有三个项目而不是一个项目的项目组.我该怎么办?谢谢.
PS以下文章基本上解决了我的问题,除了我想传递以分号分隔的值的情况:http://sedodream.com/CommentView,guid,096a2e3f-fcff-4715-8d00-73d8f2491a13.aspx
Bri*_*ler 48
您已经转义分号,阻止MSBuild将它们解析为单个项目.用这样的方式运行,带引号,
msbuild [myscript] /p:build_configurations="test5;test6;test7"
Run Code Online (Sandbox Code Playgroud)
你会得到以下输出,
Running with args: test5
Running with args: test6
Running with args: test7
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30366 次 |
最近记录: |