TFS: come allevare l'avviso se non esistono file
Domanda
Nel mio script di build eseguito da TFS2008 sto cercando di copiare tutti i file dalla cartella A alla cartella B in modo ricorsivo sono riuscito a farlo usando l'attività:
<ItemGroup>
<MyFiles Include="$(SolutionRoot)\MyFiles\**" />
</ItemGroup>
<Target Name="CopyFiles">
<Message Text="Copy Files" />
<Copy SourceFiles="@(MyFiles)"
DestinationFolder="$(DeploymentFolder)\SomeFolder\%(RecursiveDir)" />
</Target>
Vorrei sollevare un avvertimento tramite TFS quando I miei file è vuoto.
Quindi ho due domande:
Come faccio a sollevare un avvertimento tramite TFS?
Come posso scoprire se itemgroup non contiene file?
Soluzione
1) ATTENZIONE ATTENZIONE
http://msdn.microsoft.com/en-us/library/92775st5.aspx
2) Usa msBuildHelpder.itemCount
http://www.msbuildextensionpack.com/help/4.0.2.0/index.html
Ed ecco un esempio di build di esempio che ne dimostra l'uso:
<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow