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.

Problema de instalación conocido

Si ejecuta VS 2010 SP1, es posible que se produzca un error de instalación al intentar actualizar NuGet si tiene instalada una versión anterior.

La solución alternativa es simplemente desinstalar NuGet y, a continuación, instalarla desde la Galería de extensiones de VS. Consulte https://support.microsoft.com/kb/2581019 para obtener más información o vaya directamente al VS hotfix.

Nota: Si Visual Studio no le permitirá 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, NuGet 2.0 ahora requerirá que se dé el consentimiento para permitir la restauración de paquetes en línea y la descarga de 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.

Agrupar dependencias por marcos de destino

A partir de la versión 2.0, las dependencias del paquete pueden variar en función del perfil de marco del proyecto de destino. Esto se logra mediante un esquema actualizado .nuspec . El <dependencies> elemento ahora puede contener un conjunto de <group> elementos. Cada grupo contiene cero o más <dependency> elementos y un targetFramework atributo . Todas las dependencias dentro de un grupo se instalan juntas si el marco de trabajo de destino es compatible con el perfil de marco 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 2 marcos, o cualquier otro marco, se instalará RouteMagic 1.1.0. No hay herencia entre grupos. Si el marco de destino de un proyecto coincide con el targetFramework atributo 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 <dependency> elementos o grupos. Si se usa el <group> formato , 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 mediante la plataforma de destino. La misma estructura de carpetas que se encuentra en la lib carpeta para especificar la plataforma de destino ahora se puede aplicar de la misma manera a las content carpetas 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: Dado que init.ps1 se ejecuta en el nivel de solución y no depende de ningún proyecto individual, debe colocarse directamente en la tools carpeta . 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.

Mejora en el rendimiento de la finalización de pestañas

La característica de finalización de pestañas en la consola del Administrador de paquetes 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 fijos 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)