[#TFS] HowTo: NuGet y TFS

image

Buenas,

hoy el amigo Juan ha escrito un post donde nos presenta un poco a NuGet. Como deja la pelota en el aire y además se presta un poco a una charla que tuvimos con @EduDelPozo, hoy toca hablar un poco sobre como trabajar con NuGet y Team Foundation Server.

Primero lo primero, en mi caso partimos de una estructura de directorios donde separamos por un lado el código fuente en la carpeta SRC y luego las bibliotecas compartidas en la carpeta LIB.

image

En la imagen anterior podemos ver en este proyecto hay 2 bibliotecas de clases. Para complicar un poco más el escenario vamos a agregar un par de referencias de Enterprise Library desde NuGet. En este caso logging desde http://nuget.org/packages/EnterpriseLibrary.Logging.

Una vez instalado ya tenemos nuestras dlls agregadas como referencia y en el proyecto se ha agregado el archivo package.config.

   1: Each package is licensed to you by its owner. Microsoft is not responsible for, 

   2: nor does it grant any licenses to, third-party packages. Some packages may 

   3: include dependencies which are governed by additional licenses. Follow the 

   4: package source (feed) URL to determine any dependencies.

   5:  

   6: Package Manager Console Host Version 1.8.30524.9000

   7:  

   8: Type 'get-help NuGet' to see all available NuGet commands.

   9:  

  10: PM>; Install-Package EnterpriseLibrary.Logging

  11: Attempting to resolve dependency 'EnterpriseLibrary.Common (≥ 5.0)'.

  12: Attempting to resolve dependency 'Unity.Interception (≥ 2.1)'.

  13: Attempting to resolve dependency 'Unity (≥ 2.1)'.

  14: Attempting to resolve dependency 'CommonServiceLocator (≥ 1.0)'.

  15: Successfully installed 'CommonServiceLocator 1.0'.

  16: You are downloading Unity from Microsoft patterns &; practices, the license 

  17: agreement to which is available at http://www.opensource.org/licenses/ms-pl. 

  18: Check the package for additional dependencies, which may come with their own 

  19: license agreement(s). Your use of the package and dependencies constitutes 

  20: your acceptance of their license agreements. If you do not accept the 

  21: license agreement(s), then delete the relevant components from your device.

Ahora bien, en nuestro caso habíamos definido que las referencias externas debían ir a la carpeta LIB. Como NuGet es inteligente pero no tanto, tenemos que indicarle que tiene que cambiar el comportamiento por defecto. Que consiste en dejar los ensamblados en una carpeta packages, por ejemplo

[…\NuGet\src\ClassLibrary2\packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.Common.dll]

Pues bien, para cambiar esta funcionalidad seleccionamos la solución, desplegamos el menú contextual y seleccionamos la opción [Enable NuGet Package Restore]

image

Esta acción nos agrega un nuevo solution folder llamado .nuget y dentro del mismo agrega el ejecutable de NuGet y un archivo de MSBuild con diferentes targets para la descarga de los paquetes.

image

Si vamos al directorio veremos que también se crea un archivo llamado NuGet.Config. Pero para nuestro ejemplo no será este archivo de configuración el que defina el directorio de descarga de los paquetes. Lo que haremos será lo siguiente:

1. Agregar un archivo llamado nuget.config en el directorio de la solución

2. Dentro del mismo definir el path de descarga de los paquetes con el siguiente código

<?xml version="1.0" encoding="utf-8"?>

<settings>

  <repositoryPath>..\..\..\Lib</repositoryPath>

</settings>

3. Done !!!

Si vemos la carpeta lib, veremos que dentro de la misma tenemos los paquetes con los que estamos trabajando

image

Ahh y gracias al @Edudelpozo que me dió una mano con esta última parte Risa.

Si subimos los paquetes a la carpeta lib de nuestro TFS ya tendremos todo listo para trabajar on the fly !!!

 

Saludos @ Home

El Bruno

image image image
About these ads

4 pensamientos en “[#TFS] HowTo: NuGet y TFS

  1. Pingback: [#NUGET] Problemas de rendimiento, pues SI :S - El Bruno

  2. Pingback: [#NUGET] Problemas de rendimiento, pues SI :S « El Bruno

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s