Target内的ItemGroup不执行

时间:2013-01-11 23:54:24

标签: msbuild msbuild-4.0

我无法理解这种行为:项目组直接放在项目标签下工作正常:

 <ItemGroup>
    <!-- Copy the Dev Config files -->  
<Robocopy Include="$(INETROOT)\private\CASI\Reporting\Config\Dev">
      <DestinationFolder>$(DevBranch)\Reporting</DestinationFolder>
      <FileMatch>*</FileMatch>
</Robocopy>

但是如果将相同的内容作为子项包含在目标中,则项目组不会被执行:

<!-- Create the Dev Branch -->
<Target Name="CreateDevBranch" AfterTargets="Build">
    <CreateItem Include="$(AppRoot)\**\*.*">
        <Output TaskParameter="Include" ItemName="CompileOutput" />
    </CreateItem>

<Copy SourceFiles="@(CompileOutput)" 
    DestinationFolder="$(DevBranch)\hello\%(RecursiveDir)"></Copy>
    <ItemGroup>
    <!-- Copy the Dev Config files -->  
<Robocopy Include="$(INETROOT)\private\CASI\Reporting\Config\Dev">
      <DestinationFolder>$(DevBranch)\Reporting</DestinationFolder>
      <FileMatch>*</FileMatch>
</Robocopy>

</Target>

奇怪的是复制操作是有效的,即使我注释了复制操作,ItemGroup操作仍然没有被执行

我想我在这里错过了一些概念

由于

1 个答案:

答案 0 :(得分:0)

itemgroup可能为空,id检查你创建的项目组是否有任何值?此外,createitem是旧的msbuild,并且使用msbuild 3.5来减少任务。使用创建项目组