2011-02-13 31 views
2

在由TFS2008我試圖將所有文件從文件夾中複製到文件夾B運行我的構建腳本沒有文件提高預警遞歸我已經成功地用做任務吧:TFS:如何是否存在

<ItemGroup> 
    <MyFiles Include="$(SolutionRoot)\MyFiles\**" /> 
</ItemGroup> 

<Target Name="CopyFiles"> 
     <Message Text="Copy Files" /> 
     <Copy SourceFiles="@(MyFiles)" 
      DestinationFolder="$(DeploymentFolder)\SomeFolder\%(RecursiveDir)" /> 

</Target> 

我想通過TFS發出警告,當MyFiles爲空時。

所以我有兩個問題:

  1. 如何提高通過TFS的警告?

  2. 如何發現ItemGroup 不包含文件?

回答

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>