TFS:如果没有文件,如何引发警告

时间:2011-02-13 16:30:46

标签: tfs tfs2008

在我的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发出警告。

所以我有两个问题:

  1. 如何通过TFS发出警告?

  2. 如何发现ItemGroup 不包含文件?

1 个答案:

答案 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)' &gt; '0'" />
    </Target>
</Project>