8/7/2008 23:06 El Bruno

[MSBUILD] HowTo: Publicar aplicaciones con ClickOnce

Buenas,

por unos días seguiré con algunos posts sobre MSBuild, ya que ahora que me ha tocado volver a configurarlos en Team Foundation Server 2008 me encuentro con algunas novedades muy interesantes.

Por ejemplo, hoy toca uno de los ejemplos más simples: ¿cómo publicar un proyecto con ClickOnce de forma automatizada en un proyecto de compilación?

Pues la respuesta es muy simple, y si una imagen vale más que 1000 palabras, un par de líneas de código, valen por lo menos 500 palabras:

1 <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> 2 <!-- 3 ================================= 4 DEPLOY WITH CLICK ONCE 5 ================================= --> 6 7 <PropertyGroup> 8 <VersionMajor>1</VersionMajor> 9 <VersionMinor>0</VersionMinor> 10 <VersionService>0</VersionService> 11 <VersionBuild>6</VersionBuild> 12 </PropertyGroup> 13 14 <Target Name="AfterCompile" DependsOnTargets="BuildNumberOverrideTarget"> 15 16 <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" Name="StartClickOnce" 17 Message="Start Click Once Deploy to &quot;\\TFSRTM08\ClickOnce\&quot; Version=$(VersionMajor).$(VersionMinor).$(VersionBuild).$(VersionRevision)" Status="Succeeded" /> 18 19 <MSBuild Projects="$(SolutionRoot)\ClickOnceDemo\ClickOnceDemo\ClickOnceDemo.csproj" 20 Properties="PublishDir=\\TFSRTM08\ClickOnce\;ApplicationVersion=$(VersionMajor).$(VersionMinor).$(VersionBuild).$(VersionRevision)" 21 Targets="Publish" /> 22 23 <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" Name="EndClickOnce" 24 Message="End Click Once Deploy" Status="Succeeded" /> 25 26 </Target>

este pequeño fragmento de código muestra un par de cosillas interesantes a tener en cuenta:

  • Entre las líneas 7 y 12, defino un <PropertyGroup /> con los futuros valores para la versión de publicación (cuando tenga tiempo muestro como evolucionar un poco el post de Luis sobre una version incremental en cada build).
  • Sobreescribo el <Target /> AfterCompile para introducir dentro del mismo las opciones de generación.
  • En la línea 19 defino una tarea <MSBuild /> que es la encargada de publicar la aplicación, invocando el proyecto que queremos publicar con el atributo @Projects y las propiedades de publicación con el atributo @Properties.
  • En el atributo @Properties se especifica el directorio de publicación y la versión de publicación.
  • Una vez más utilizo <BuildStep /> para notificar en la ventana de progreso las acciones de publicación.

La siguiente imagen muestra un pequeño ejemplo de un proyecto de compilación. Como se puede ver dentro del mismo, los pasos de publicación con ClickOnce se ejecutan después de la compilación del proyecto.

Saludos @ Home

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Archivado en: ,,
Comparte este post:

# [TFS2008] Posts y HowTos sobre Team Foundation Server 2008 y 2005 (VI)

Wednesday, September 23, 2009 7:54 PM by El Bruno

Buenas, actualización con los posts, HowTos, posts sobre informes, builds, etc. sobre Team Foundation

# [Spanish] Visual Studio 2010 ALM y Team Foundation Server 2010, 2008 y 2005

Sunday, August 28, 2011 1:05 PM by El Bruno

13 marzo Buenas, Team Foundation Server 2010 WorkItem Tracking [#TFS2010] HowTo: Agregar un estado en