Compartir a través de


Notas de la versión de NuGet 2.0

Notas de la versión de NuGet 1.8 | Notas de la versión de NuGet 2.1

NuGet 2.0 se publicó el 19 de junio de 2012.

Problemas de instalación conocidos

Si ejecuta VS 2010 SP1, es posible que vea el siguiente mensaje de error al intentar actualizar NuGet si tiene instalada una versión anterior.

La solución alternativa consiste en desinstalar NuGet e instalarlo desde la galería de extensiones de VS. Vea https://support.microsoft.com/kb/2581019 para obtener más información o vaya directamente a la revisión de VS.

Nota: Si Visual Studio no le permite desinstalar la extensión (el botón Desinstalar está deshabilitado), es probable que tenga que reiniciar Visual Studio con "Ejecutar como Administrador".

Como se describe en esta publicación sobre el consentimiento de la restauración de paquetes, ahora en NuGet 2.0 será necesario ese consentimiento para permitir que la restauración de paquetes se conecte y descargue paquetes. Asegúrese de que ha proporcionado consentimiento mediante el cuadro de diálogo de configuración del administrador de paquetes o la variable de entorno EnableNuGetPackageRestore.

Agrupación de dependencias por marcos de destino

A partir de la versión 2.0, las dependencias de paquete pueden variar en función del perfil de marco del proyecto de destino. Esto se logra mediante un esquema .nuspec actualizado. El elemento <dependencies> ahora puede incluir un conjunto de elementos <group>. Cada grupo contiene cero o más elementos <dependency> y un atributo targetFramework. Todas las dependencias dentro de un grupo se instalan conjuntamente cuando la plataforma de destino es compatible con el perfil de plataforma de proyecto de destino. Por ejemplo:

<dependencies>
    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>

    <group targetFramework="net40">
        <dependency id="jQuery" />
        <dependency id="WebActivator" />
    </group>

    <group targetFramework="sl30">
    </group>
</dependencies>

Tenga en cuenta que un grupo puede contener cero dependencias. En el ejemplo anterior, si el paquete está instalado en un proyecto destinado a Silverlight 3.0 o posterior, no se instalará ninguna dependencia. Si el paquete se instala en un proyecto destinado a .NET 4.0 o posterior, se instalarán dos dependencias, jQuery y WebActivator. Si el paquete se instala en un proyecto que tiene como destino una versión temprana de estos dos marcos, o cualquier otro, se instalará RouteMagic 1.1.0. No hay herencia entre grupos. Si el marco de destino de un proyecto coincide con el atributo targetFramework de un grupo, solo se instalarán las dependencias de ese grupo.

Un paquete puede especificar dependencias de paquete en cualquiera de los dos formatos: el formato antiguo de una lista plana de elementos <dependency> o grupos. Si se usa el formato <group>, el paquete no se puede instalar en versiones de NuGet anteriores a la 2.0.

Tenga en cuenta que no se permite mezclar los dos formatos. Por ejemplo, el fragmento de código siguiente no es válido y NuGet lo rechazará.

<dependencies>
    <dependency id="jQuery" />
    <dependency id="WebActivator" />

    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>
</dependencies>

Agrupación de archivos de contenido y scripts de PowerShell por marco de destino

Además de las referencias de ensamblado, los archivos de contenido y los scripts de PowerShell también se pueden agrupar por plataforma de destino. La misma estructura de carpetas que se encuentra en la carpeta lib para especificar la plataforma de destino ahora se puede aplicar de la misma manera a las carpetas content y tools. Por ejemplo:

\content
    \net11
        \MyContent.txt
    \net20
        \MyContent20.txt
    \net40
    \sl40
        \MySilverlightContent.html

\tools
    \init.ps1
    \net40
        \install.ps1
        \uninstall.ps1
    \sl40
        \install.ps1
        \uninstall.ps1

Nota: Como init.ps1 se ejecuta en el nivel de la solución y no depende de ningún proyecto individual, se debe colocar directamente en la carpeta tools. Si se coloca dentro de una carpeta específica del marco, se omitirá.

Además, una nueva característica de NuGet 2.0 es que una carpeta de marco puede estar vacía, en cuyo caso NuGet no agregará referencias de ensamblado, agregará archivos de contenido ni ejecutará scripts de PowerShell para la versión concreta del marco. En el ejemplo anterior, la carpeta content\net40 está vacía.

Rendimiento mejorado de la finalización mediante tabulación

La característica de finalización mediante tabulación de la consola del Administrador de paquetes de NuGet se ha actualizado para mejorar significativamente el rendimiento. Habrá mucho menos retraso desde el momento en que se presiona la tecla de tabulación hasta que aparezca la lista desplegable de sugerencias.

Correcciones de errores

NuGet 2.0 incluye muchas correcciones de errores con énfasis en el consentimiento y el rendimiento de la restauración de paquetes. Para obtener una lista completa de los elementos de trabajo corregidos en NuGet 2.0, vea [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0).