我无法理解这种行为:项目组直接放在项目标签下工作正常:
<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操作仍然没有被执行
我想我在这里错过了一些概念
由于
答案 0 :(得分:0)
itemgroup可能为空,id检查你创建的项目组是否有任何值?此外,createitem是旧的msbuild,并且使用msbuild 3.5来减少任务。使用创建项目组