TFS: как вызвать предупреждение, если файлов не существует - PullRequest
2 голосов
/ 13 февраля 2011

В моем скрипте сборки, запущенном TFS2008, я пытаюсь рекурсивно скопировать все файлы из папки A в папку B, мне удалось сделать это с помощью задачи:

<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. Как узнать, нет ли в группе товаров файлов?

1 Ответ

2 голосов
/ 13 февраля 2011

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>
...