在我的TFS2008运行的构建脚本中,我试图将文件夹A中的所有文件递归复制到文件夹B我已经设法使用任务来完成:
<ItemGroup>
<MyFiles Include="$(SolutionRoot)\MyFiles\**" />
</ItemGroup>
<Target Name="CopyFiles">
<Message Text="Copy Files" />
<Copy SourceFiles="@(MyFiles)"
DestinationFolder="$(DeploymentFolder)\SomeFolder\%(RecursiveDir)" />
</Target>
当 MyFiles 为空时,我想通过TFS发出警告。
所以我有两个问题:
如何通过TFS发出警告?
如何发现ItemGroup 不包含文件?
答案 0 :(得分:2)
1)警告任务
http://msdn.microsoft.com/en-us/library/92775st5.aspx
2)使用Msbuildhelpder.ItemCount
http://www.msbuildextensionpack.com/help/4.0.2.0/index.html
这是一个示例构建文件,演示了它的用法:
<Project ToolsVersion="4.0" DefaultTargets="Default;UpdateMetadata" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TPath>$(MSBuildProjectDirectory)\..\MSBuild.ExtensionPack.tasks</TPath>
<TPath Condition="Exists('$(MSBuildProjectDirectory)\..\..\Common\MSBuild.ExtensionPack.tasks')">$(MSBuildProjectDirectory)\..\..\Common\MSBuild.ExtensionPack.tasks</TPath>
</PropertyGroup>
<Import Project="$(TPath)"/>
<ItemGroup>
<MyFiles Include="$(SolutionRoot)\MyFiles\**" />
</ItemGroup>
<Target Name="Default">
<MSBuild.ExtensionPack.Framework.MsBuildHelper
TaskAction="GetItemCount"
InputItems1="@(MyFiles)">
<Output TaskParameter="ItemCount" PropertyName="MyCount"/>
</MSBuild.ExtensionPack.Framework.MsBuildHelper>
<Warning
Text=" No files in MyFiles collection."
Condition="'$(MyCount)' > '0'" />
</Target>
</Project>