Archivo de la categoria 'Southworks SDC Tasks'

Actualizando los archivos AssemblyInfo usando las Southworks SDC tasks

English Version

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:

image

Por último, abriendo alguno de los  AssemblyInfo.cs incluidos y veremos como se ha actualizado:

image

Gracias, y sigan atentos!