Actualizando los archivos AssemblyInfo usando las Southworks SDC tasks
Johnny and Ezequiel han publicado en sus Blogs acerca de las Southworks SDC Tasks que hemos publicado dos semanas atrás en Google Code. Este projecto es un set de tasks para MSBuild tasks que construimos mientras madurabamos nuestro proceso de build.
Durante este tiempo voy a intentar darles una guÃa sobre estas tasks que hemos desarrollado por medio de un ejemplo de cada una de ellas.
En este post van a encontrar de que forma se pueden actualizar los archivos AssemblyInfo con información de la empresa utilizando la task UpdateAssemblyinfo facilmente.
Esta task es basntate simple, entonces, vamos a crear un simple projecto de MSBuild (.proj) para demostrar como funciona.
Referenciando el assembly SDC en el proyecto de MSBuild
El primer paso es añadir la referencia para esta task en particular configurando los nodos AssemblyFile y TaskName con los siguientes valores:
<Project DefaultTargets="UpdateAssemblyInfos"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask AssemblyFile="d:\test\Southworks.Sdc.Tasks.dll"
TaskName="UpdateAssemblyInfo"/>
</Project>
Hay que tener en cuenta que el nodo DefaultTargets indica cual va a ser el target que va a ejecutarse primero, más adelante voy a incluir este target.
Definiendo que files van a ser actualizados
El siguiente paso es indentificar y configurar cuáles van a ser los archivos que modificará nuestra task y donde se encuentran. Para esto vamos a crear un ItemGroup. Si querés conocer más acerca de incluir y/o excluir items mira este link http://msdn.microsoft.com/en-us/library/646dk05y.aspx.
<Project DefaultTargets="UpdateAssemblyInfos"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask AssemblyFile="d:\test\Southworks.Sdc.Tasks.dll"
TaskName="UpdateAssemblyInfo"/>
<ItemGroup>
<AssemblyInfos Include="d:\test\**\AssemblyInfo.cs"/>
</ItemGroup>
</Project>
Configurando el target UpdateAssemblyinfo
Por último debemos crear y configurar el nuevo target especificando la información que va a ser reemplazada en los archivos que hemos configurado en el paso anterior.
<Project DefaultTargets="UpdateAssemblyInfos"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask AssemblyFile="d:\test\Southworks.Sdc.Tasks.dll"
TaskName="UpdateAssemblyInfo"/>
<ItemGroup>
<AssemblyInfos Include="d:\test\**\AssemblyInfo.cs"/>
</ItemGroup>
<Target Name="UpdateAssemblyInfos">
<UpdateAssemblyinfo Include="@(AssemblyInfos)"
AssemblyCopyright="Southworks (r) copyright"
AssemblyCompany="Southworks"
AssemblyProduct="Sample product " />
</Target>
</Project>
Verificación
Para comprobar que todo esta funcionando, podemos ejecutar el projecto con MSBuild como se muestra en la siguiente imagen:
Por último, abriendo alguno de los AssemblyInfo.cs incluidos y veremos como se ha actualizado:
Gracias, y sigan atentos!
Juan Pablo Garcia Blog