Supongo que a estas alturas todo el mundo conoce NuGet. Si no, tenéis toda la información en el sitio de codeplex: http://nuget.codeplex.com/ y también os recomiendo los blogs de Phil Haack (padre del invento) y Scott Hanselman.

Esta mañana me he encontrado un post muy interesante, sobre cómo crear un paquete de NuGet, que permite que, partiendo de un proyecto de tipo Sharepoint vacío, en Visual Studio, se añada una serie de items al proyecto. Algo similar a una plantilla de proyecto de VS, pero más sencillo de crear.

Link: http://www.estruyf.be/blog/creating-a-nuget-package-to-automate-the-sharepoint-solution-creation-process/

Como me ha parecido muy buena idea, lo he probado para crear un proyecto típico de Consola, pero que añade una clase con algunos métodos útiles a la hora de trabajar con Sharepoint (listar sitios de un site, listas de un site, items de la lista, y columnas de una lista). También añade la referencia a Microsoft.SharePoint.

En este caso, he utilizado el NuGet Package Explorer que lo podéis descargar también desde el sitio de NuGet en codeplex, y que permite crear los paquetes con una interfaz gráfica más amigable:

image

Os dejo el enlace al paquete, por si os es de utilidad. Para instalarlo, podéis seguir los pasos del artículo. Básicamente es editar las propiedades del NuGet desde las opciones de Visual Studio 2010 y añadir como fuente la carpeta local donde dejéis el paquete:

image

Tras esto, ya podemos crear un proyecto de Consola típico y añadirle el paquete. Ojo! antes de añadirlo, eliminad el fichero Program.cs que mete la plantilla, ya que el paquete contiene ese mismo fichero con algo de código, y si ya existe, el paquete no lo sobrescribe. Ah! y acordaos también de cambiar a x64 para que no os dé error al ejecutarlo (el mensaje de error no es muy descriptivo de lo que pasa en realidad):

image

Con estos cambios, ya podemos agregar el paquete:

image

 

image

Y vemos los ficheros añadidos y la referencia a la dll de SharePoint.

image

Espero que os sea de utilidad.

Un saludo!!