1
我需要使用属性调用msbuild任务,只能在运行时计算什么名称。我试图通过这个脚本如何在内联任务中编辑或添加属性
做的main.xml
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0" DefaultTargets="Build">
<UsingTask TaskName="GetVars" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<Result ParameterType="System.String" Output="true"/>
</ParameterGroup>
<Task>
<Code Type="Fragment" Language="cs">
<![CDATA[
this.Result = "AAA=123;BBB=456;";
]]>
</Code>
</Task>
</UsingTask>
<PropertyGroup>
<Vars></Vars>
</PropertyGroup>
<Target Name="Make">
<GetVars>
<Output TaskParameter="Result" PropertyName="Vars"/>
</GetVars>
<MSBuild Projects="Proj.xml" Targets="make" Properties="$(Vars)"/>
</Target>
</Project>
Proj.xml
这个脚本给这个输出:
AAA = 123;BBB=456;
BBB =
我预计这样的输出:
AAA = 123;
BBB = 456;
请提供一个[MVCE](http://stackoverflow.com/help/mcve),以便其他人可以尝试只是代码的相关部分。无论如何,如果我正确理解你想要什么,这是非常标准的msbuild,也包含在内联任务的文档中:https://msdn.microsoft.com/en-us/library/dd723643.aspx?f=255&MSPPError=-2147217396 。简而言之:如果你想要一个项目而不是一个属性,输出一个数组而不是一个字符串,并使用ItemName =“Vars”。 – stijn
我改变MVC的问题。后来我看起来_items_概念 – Vasek