Notas de la versión de NuGet 2.6
Notas de la versión de NuGet 2.5 | Notas de la versión de NuGet 2.6.1 para WebMatrix
NuGet 2.6 se publicó el 26 de junio de 2013.
NuGet 2.6 es la primera versión en la que se proporciona compatibilidad con Visual Studio 2013. Y como en Visual Studio 2012, la extensión Administrador de paquetes NuGet se incluye en todas las ediciones de Visual Studio.
Con el fin de proporcionar la mejor compatibilidad posible con Visual Studio 2013 mientras se siguen admitiendo Visual Studio 2010 y Visual Studio 2012, y se mantienen los tamaños de extensión más reducidos posibles, se crea una extensión independiente para Visual Studio 2013 mientras que la extensión original sigue teniendo como destino Visual Studio 2010 y 2012.
A partir de NuGet 2.6, se publicarán dos extensiones como se indica a continuación:
- Administrador de paquetes NuGet (se aplica a Visual Studio 2010 y 2012)
- Administrador de paquetes NuGet para Visual Studio 2013
Con esta división, el botón "Instalar NuGet" de la página principal nuget.org le lleva a la página de instalación de NuGet, donde puede encontrar más información sobre cómo instalar los distintos clientes NuGet.
Una de las características más solicitadas para el cliente NuGet ha sido admitir transformaciones XML más eficaces mediante el motor de transformación XDT que se usa en las transformaciones de configuración de compilación de Visual Studio.
En abril de 2013 se realizaron dos grandes anuncios sobre la compatibilidad de NuGet con XDT. El primero fue que la propia biblioteca XDT se publicaba como un paquete NuGet y [open sourced on CodePlex](http://xdt.codeplex.com/)
. Este paso permitió que el motor XDT se usara libremente en otro software de código abierto, incluido el cliente NuGet. El segundo anuncio fue el plan para admitir el uso del motor XDT para las transformaciones en el cliente NuGet. En NuGet 2.6 se incluye esta integración.
Para aprovechar la compatibilidad con XDT de NuGet, la mecánica tiene un aspecto similar al de la característica de transformación de configuración actual. Los archivos de transformación se agregan a la carpeta de contenido del paquete. Pero aunque las transformaciones de configuración usan un único archivo para la instalación y desinstalación, las transformaciones XDT permiten un control específico sobre ambos procesos mediante los siguientes archivos:
- Web.config.install.xdt
- Web.config.uninstall.xdt
Además, NuGet usa el sufijo de archivo para determinar qué motor se va a ejecutar para las transformaciones, por lo que los paquetes que usan web.config.transforms existentes seguirán funcionando. Las transformaciones XDT también se pueden aplicar a cualquier archivo XML (no solo web.config), por lo que puede aprovechar esto para otras aplicaciones del proyecto.
Una de las mayores ventajas de XDT es su sintaxis simple pero eficaz para manipular la estructura de un DOM XML. En lugar de superponer simplemente una estructura de documento fija sobre otra, XDT proporciona controles para los elementos coincidentes de varias maneras, desde la coincidencia de nombres de atributo simple a la compatibilidad completa con XPath. Una vez que se encuentra un elemento o conjunto de elementos coincidente, XDT proporciona un amplio conjunto de funciones para manipular los elementos, tanto si esto significa agregar, actualizar o quitar atributos, colocar un nuevo elemento en una ubicación específica, o bien reemplazar o quitar todo el elemento y sus elementos secundarios.
Una de las grandes ventajas de NuGet es que divide un archivo ejecutable o biblioteca grande en un conjunto de componentes modulares que se pueden integrar y, lo más importante, mantener y versionar de forma independiente. Pero un efecto secundario de esto es que la idea convencional de un producto o familia de productos se vuelve potencialmente más fragmentada. La característica de origen de paquete personalizado de NuGet proporciona una manera de organizar los paquetes; pero los orígenes de paquetes personalizados no se pueden detectar por sí mismos.
En NuGet 2.6 se amplía la lógica para configurar NuGet mediante la búsqueda en la jerarquía de carpetas en la ruta de acceso %ProgramData%/NuGet/Config. Los instaladores de productos pueden agregar archivos de configuración de NuGet personalizados en esta carpeta para registrar un origen de paquete personalizado para sus productos. Además, la estructura de carpetas admite la semántica de producto, versión e incluso SKU del IDE. Los valores de estos directorios se aplican en el siguiente orden con una estrategia de precedencia "el último gana".
- %ProgramData%\NuGet\Config*.config
- %ProgramData%\NuGet\Config{IDE}*.config
- %ProgramData%\NuGet\Config{IDE}{Versión}*.config
- %ProgramData%\NuGet\Config{IDE}{Versión}{SKU}*.config
En esta lista, el marcador de posición {IDE} es específico del IDE en el que se ejecuta NuGet, por lo que en el caso de Visual Studio, será "VisualStudio". El IDE proporciona los marcadores de posición {Versión} y {SKU} (por ejemplo, "11.0" y "WDExpress", "VWDExpress" y "Pro", respectivamente). Después, la carpeta puede contener muchos archivos *.config diferentes. Por tanto, la empresa de componentes ACME puede, como parte de su instalador de productos, agregar un origen de paquete personalizado que solo será visible en las versiones Professional y Ultimate de Visual Studio 2012 mediante la creación de la siguiente ruta de acceso de archivo:
%ProgramData%\NuGet\Config\VisualStudio\11.0\Pro\acme.config
Aunque la estructura de carpetas facilita a los programas, como los instaladores de software, agregar orígenes de paquetes de toda la máquina a la configuración de NuGet, el cuadro de diálogo de configuración de NuGet también se ha actualizado para permitir el registro de orígenes de paquetes como específicos del usuario (por ejemplo, registrados en %AppData%/NuGet/NuGet.Config) o de toda la máquina.
Visual Studio 2013 usa esta característica, donde un archivo se instala en:
%ProgramData%\NuGet\Config\VisualStudio\12.0\Microsoft.VisualStudio.config
Dentro de este archivo, se configura un nuevo origen de paquete denominado "Paquetes de .NET Framework".
A medida que el número de paquetes servidos por la galería de NuGet sigue creciendo a un ritmo exponencial, la mejora de la búsqueda permanece siempre en la parte superior de la lista de prioridades de NuGet. Una de las características planeadas para NuGet es la búsqueda contextual, lo que significa que NuGet usará información sobre la versión y la SKU de Visual Studio que se utiliza y el tipo de proyecto que se va a compilar como criterios para determinar la relevancia de los posibles resultados de la búsqueda.
A partir de NuGet 2.6, cada vez que se instala un paquete, el contexto de la instalación se registra como parte de los datos de la operación de instalación. Las búsquedas también envían la misma información de contexto, lo que permitirá a la Galería de NuGet aumentar los resultados de la búsqueda por tendencias de instalación contextuales. En una actualización futura de la Galería de NuGet se habilitará esta mejora de relevancia contextual.
Los creadores de paquetes se basan cada vez más en las estadísticas de paquetes proporcionadas en la Galería de NuGet. Un punto de datos importante que falta y que los creadores han solicitado es una diferenciación entre las instalaciones directas de paquetes y las instalaciones de dependencia. Hasta ahora, el cliente NuGet no enviaba ningún contexto relacionado con la operación de instalación sobre si el desarrollador instalaba directamente el paquete o si se instalaba para satisfacer una dependencia. A partir de NuGet 2.6, ahora esos datos se enviarán para la operación de instalación. Las estadísticas de paquetes de la Galería de NuGet expondrán esos datos como operaciones de instalación independientes, con un sufijo "-Dependency".
- Instalación
- Install-Dependency
- Actualizar
- Update-Dependency
- Volver a instalar
- Reinstall-Dependency
Además del nombre diferente de la operación, el identificador del paquete dependiente también se registra para la instalación. En una actualización futura de la Galería de NuGet se expondrán esos datos dentro de los informes, lo que permitirá a los creadores de paquetes comprender completamente cómo los desarrolladores instalan sus paquetes.
En NuGet 2.6 también se incluyen varias correcciones de errores. Para obtener una lista completa de los elementos de trabajo corregidos en NuGet 2.6, vea [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.6&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0&reasonClosed=All)
.