TFS: Comment augmenter l'avertissement si aucun fichier n'existe
Question
Dans mon script de construction exécuté par TFS2008 J'essaie de copier tous les fichiers du dossier A au dossier B de récursivement, j'ai réussi à le faire à l'aide de tâche:
<ItemGroup>
<MyFiles Include="$(SolutionRoot)\MyFiles\**" />
</ItemGroup>
<Target Name="CopyFiles">
<Message Text="Copy Files" />
<Copy SourceFiles="@(MyFiles)"
DestinationFolder="$(DeploymentFolder)\SomeFolder\%(RecursiveDir)" />
</Target>
Je voudrais soulever un avertissement via TFS lorsque myFiles est vide.
Donc j'ai deux questions:
-
Comment puis-je soulever un avertissement via TFS?
-
Comment puis-je découvrir si le groupe d'éléments contient aucun fichier?
La solution
1) Tâche d'alerte
http://msdn.microsoft.com/en-us/library/92775ST5.aspx
2) Utilisez le msbuildhelperder.itemcount
http://www.msbuildextensionpack.com/help/4.0.2.0/index.html
Et voici un exemple de fichier de construction qui démontre son utilisation:
<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow