Lire en anglais

Partager via


Notes de publication de NuGet 2.0

Notes de publication de NuGet 1.8 | Notes de publication de NuGet 2.1

NuGet 2.0 a été publié le 19 juin 2012.

Problème connu lié à l’installation

Si vous exécutez Visual Studio 2010 SP1, vous pouvez rencontrer une erreur d’installation quand vous tentez de mettre à niveau NuGet si une version plus ancienne est installée.

Une autre solution de contournement consiste à désinstaller simplement NuGet puis à l’installer à partir de la galerie d’extensions Visual Studio. Consultez https://support.microsoft.com/kb/2581019 pour plus d’informations, ou accédez directement au correctif logiciel VS.

Remarque : Si Visual Studio ne vous permet pas de désinstaller l’extension (le bouton Désinstaller est désactivé), vous devrez probablement redémarrer Visual Studio à l’aide de « Exécuter en tant qu’administrateur ».

Comme décrit dans ce billet sur le consentement de restauration de package, NuGet 2.0 demandera maintenant que le consentement soit accordé pour permettre à la restauration de package d’accéder aux packages en ligne et de les télécharger. Vérifiez que vous avez accordé le consentement via la boîte de dialogue de configuration du Gestionnaire de package ou la variable d’environnement EnableNuGetPackageRestore.

Regrouper les dépendances par frameworks cibles

À partir de la version 2.0, les dépendances de package peuvent varier en fonction du profil d’infrastructure du projet cible. Cette opération s’effectue à l’aide d’un schéma .nuspec mis à jour. Un élément <dependencies> peut désormais contenir un ensemble d’éléments <group>. Chaque groupe contient zéro ou plusieurs éléments <dependency> et un attribut targetFramework. Toutes les dépendances à l’intérieur d’un groupe sont installées ensemble si la version cible de .Net Framework est compatible avec le profil de framework du projet cible. Par exemple :

<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>

Notez qu’un groupe peut contenir zéro dépendance. Dans l’exemple ci-dessus, si le package est installé dans un projet qui cible Silverlight 3.0 ou une version ultérieure, aucune dépendance n’est installée. Si le package est installé dans un projet qui cible .NET 4.0 ou une version ultérieure, deux dépendances, jQuery et WebActivator, sont installées. Si le package est installé dans un projet qui cible une version antérieure de ces 2 frameworks, ou tout Autre framework, RouteMagic 1.1.0 est installé. Il n’y a pas d’héritage entre les groupes. Si le framework cible d’un projet correspond à l’attribut targetFramework d’un groupe, seules les dépendances au sein de ce groupe sont installées.

Un package peut spécifier des dépendances de package dans l’un des deux formats suivants : l’ancien format d’une liste plate d’éléments <dependency> ou des groupes. Si le format <group> est utilisé, le package ne peut pas être installé dans les versions de NuGet antérieures à la version 2.0.

Notez que le mélange des deux formats n’est pas autorisé. Par exemple, l’extrait de code suivant n’est pas valide et sera rejeté par NuGet.

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

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

Regroupement de fichiers de contenu et de scripts PowerShell par framework cible

Outre les références d’assembly, les fichiers de contenu et les scripts PowerShell peuvent également être regroupés par framework cible. La même structure de dossiers trouvée dans le dossier lib pour spécifier le framework cible peut désormais être appliquée de la même façon aux dossiers content et tools. Par exemple :

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

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

Remarque : Étant donné que init.ps1 s’exécute au niveau de la solution et ne dépend d’aucun projet individuel, il doit être placé directement sous le dossier tools. S’il est placé dans un dossier spécifique au framework, il sera ignoré.

En outre, une nouvelle fonctionnalité dans NuGet 2.0 est qu’un dossier de framework peut être vide, auquel cas NuGet n’ajoute pas de références d’assembly, ajoute des fichiers de contenu ou exécute des scripts PowerShell pour la version particulière de framework. Dans l’exemple ci-dessus, le dossier content\net40 est vide.

Amélioration des performances de saisie semi-automatique via la touche Tabulation

La fonctionnalité de saisie semi-automatique via la touche Tabulation dans la console du Gestionnaire de package NuGet a été mise à jour pour améliorer considérablement les performances. Il y aura beaucoup moins de retard à partir du moment où la touche Tabulation est enfoncée jusqu’à ce que la liste déroulante de suggestions apparaisse.

Correctifs de bogues

NuGet 2.0 inclut de nombreux correctifs de bogues en mettant l’accent sur le consentement et les performances de restauration de package. Pour obtenir la liste complète des éléments de travail corrigés dans NuGet 2.0, veuillez consulter [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).