如何解决使在MSBuild目标中创建的ItemGroup可用于调用目标
| 如果我在MSBuild文件中具有以下目标:<Target Name=\"Temp\">
<CallTarget Targets=\"CreateTestList\" />
<Message Text=\"TestList: -- @(TestAssembly) -- \" />
<Message Text=\"Testing "%(TestAssembly.Identity)"\" />
</Target>
<Target Name=\"CreateTestList\">
<CreateItem Include=\"**\\bin\\$(Configuration)\\*Tests.dll\">
<Output TaskParameter=\"Include\" ItemName=\"TestAssembly\" />
</CreateItem>
<Message Text=\"TestList: -- @(TestAssembly) -- \" />
<Message Text=\"Testing "%(TestAssembly.Identity)"\" />
</Target>
如何使Temp
目标中的Message语句打印出CreateTestList
目标放入@(TestAssemblyList)ItemGroup中的项目?
解决方法
有两件事要注意。首先,CreateItem任务实际上已过时。通过在目标内部声明一个ItemGroup使其更具可读性。其次,由于MSBuild发布项目的方式,您需要使CreateTestList目标作为依赖项而不是与CallTarget一起运行,而CallTarget在大多数情况下用途有限。所以,
<Target Name=\"Temp\" DependsOnTargets=\"CreateTestList\">
<Message
...
</Target>
<Target Name=\"CreateTestList\">
<ItemGroup>
<TestAssembly Include=\"**\\bin\\$(Configuration)\\*Tests.dll\">
</ItemGroup>
<Message
...
</Target>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。