Lire en anglais

Partager via


Notes de publication de NuGet 1.4

Notes de publication de NuGet 1.3 | Notes de publication de NuGet 1.5

NuGet 1.4 a été publié le 17 juin 2011.

Fonctionnalités

Améliorations apportées au package de mise à jour

NuGet 1.4 introduit de nombreuses améliorations apportées à la commande Update-Package, ce qui facilite la conservation des packages à la même version sur des projets multiples d’une solution. Par exemple, lors de la mise à niveau d’un package vers la dernière version, il est très courant de vouloir que tous les projets avec ce package installé soient mis à jour vers la même version.

La commande Update-Package facilite désormais les opérations suivantes :

Mettre à jour tous les packages dans un seul projet

Update-Package -Project MvcApplication1

Mettre à jour un package dans tous les projets

Update-Package PackageId

Mettre à jour tous les packages dans tous les projets

Update-Package

Effectuer une mise à jour « sécurisée » sur tous les packages

L’indicateur -Safe limite les mises à niveau aux versions uniquement avec le même composant de version majeure et version mineure. Par exemple, si la version 1.0.0 d’un package est installée et que les versions 1.0.1, 1.0.2 et 1.1 sont disponibles dans le flux, l’indicateur -Safe met à jour le package vers la version 1.0.2. La mise à niveau sans l’indicateur -Safe met à niveau le package vers la dernière version, à savoir 1.1.

Update-Package -Safe

Gestion des packages au niveau de la solution

Avant NuGet 1.4, l’installation d’un package dans plusieurs projets était fastidieuse à l’aide de la boîte de dialogue. Il fallait lancer la boîte de dialogue une fois par projet.

NuGet 1.4 ajoute le support de l’installation/de la désinstallation/mise à jour des packages dans des projets multiples en même temps. Il vous suffit de lancer le système en cliquant avec le bouton droit sur la solution et en sélectionnant l’option de menu Gérer les packages NuGet.

Solution Level Manage NuGet Packages dialog

Information préalable  : dans la barre de titre de la boîte de dialogue, le nom de la solution s’affiche, et non le nom d’un projet. Les opérations de package fournissent désormais une liste de cases à cocher avec la liste des projets auxquels l’opération doit s’appliquer.

Manage NuGet Packages Project Selection

Pour plus de détails, consultez le sujet sur la gestion des packages pour la solution.

Limitation des mises à niveau aux versions autorisées

Par défaut, lors de l’exécution de la commande Update-Package sur un package (ou de la mise à jour du package à l’aide de la boîte de dialogue), la mise à jour s’effectue vers la dernière version du flux. Avec le nouveau support de la mise à jour de tous les packages, il peut arriver que vous souhaitiez verrouiller un package sur une plage de versions spécifique. Par exemple, vous savez peut-être à l’avance que votre application fonctionne uniquement avec la version 2.* d’un package, mais non la version 3.0 et versions ultérieures. Pour empêcher la mise à jour accidentelle du package vers la version 3, NuGet 1.4 ajoute le support pour limiter la plage de versions vers lesquelles les packages peuvent être mis à niveau en modifiant manuellement le fichier packages.config à l’aide du nouvel attribut allowedVersions.

L’exemple suivant montre comment verrouiller le package SomePackage de la plage de versions 2.0 - 3.0 (exclusive). L’attribut allowedVersions accepte les valeurs au format de plage de versions.

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2.0, 3.0)" />
</packages>

Notez que dans la version 1.4, le verrouillage d’un package sur une plage de versions spécifique doit être modifié manuellement. Dans NuGet 1.5, nous prévoyons d’ajouter la prise en charge du placement de cette plage via la commande Install-Package.

Visualiseur de package

Le nouveau visualiseur de package, lancé via l’option de menu Outils ->Gestionnaire de package de bibliothèque ->Visualiseur de package, vous permet de visualiser facilement tous les projets et leurs dépendances de package au sein d’une solution.

Remarque importante : cette fonctionnalité bénéficie du support DGML dans Visual Studio. La création de la visualisation n’est prise en charge que dans Visual Studio Ultimate. L’affichage d’un diagramme DGML n’est pris en charge que dans Visual Studio Premium ou version ultérieure.

Package Visualizer

Vérification de la mise à jour automatique pour la boîte de dialogue NuGet

Certaines versions de NuGet introduisent de nouvelles fonctionnalités exprimées via le fichier .nuspec qui ne sont pas comprises par les versions antérieures de la boîte de dialogue NuGet. Exemple  : l’introduction dans NuGet 1.4 pour spécifier des assemblys de cadre. Pour cette raison, il est important d’utiliser la dernière version de NuGet pour vous assurer que vous pouvez utiliser des packages bénéficiant des dernières fonctionnalités. Pour rendre les mises à jour de NuGet plus visibles, la boîte de dialogue NuGet contient la logique à mettre en surbrillance lorsqu’une version plus récente est disponible.

Remarque : la vérification est effectuée uniquement si l’onglet En ligne a été sélectionné dans la session active.

Manage NuGet Packages dialog with new version available

Pour désactiver la vérification automatique des mises à jour, accédez à la boîte de dialogue Paramètres NuGet et décochez la case Rechercher automatiquement les mises à jour.

NuGet Settings

Cette fonctionnalité a été ajoutée dans NuGet 1.3, mais elle n’est pas visible, bien sûr, tant qu’aucune mise à jour vers la version 1.3, telle que NuGet 1.4, n’est disponible.

Améliorations apportées à la boîte de dialogue Gestionnaire de package

  • Noms de menus améliorés : les options de menu permettant de lancer la boîte de dialogue ont été renommées pour plus de clarté. L’option de menu est désormais Gérer les packages NuGet.
  • Le volet Détails affiche la date de mise à jour la plus récente : la boîte de dialogue NuGet affiche la date de la dernière mise à jour dans le volet de détails d’un package lorsque l’onglet Connecté ou Mises à jour est sélectionné.
  • Liste des balises affichées : la boîte de dialogue Nuget affiche les balises.

Améliorations de PowerShell

  • Scripts PowerShell signés : NuGet inclut des scripts PowerShell signés permettant l’utilisation dans des environnements plus restrictifs.
  • Support de l’invite : la console Gestionnaire de package prend désormais en charge l’invite via les commandes $host.ui.Prompt et $host.ui.PromptForChoice.
  • Noms des sources de package : la fourniture du nom d’une source de package est prise en charge lors de la spécification d’une source de package à l’aide de l’indicateur -Source.

Améliorations de la ligne de commande nuget.exe

  • Commandes personnalisées NuGet : nuget.exe est extensible via des commandes personnalisées à l’aide de MEF.
  • Simplification du workflow pour la création de packages de symboles : l’indicateur -Symbols peut être appliqué à une structure de dossiers basée sur une convention normale créant un package de symboles en incluant uniquement la source et les fichiers .pdb dans le dossier.
  • Spécification de plusieurs sources : la commande NuGet install prend en charge la spécification de plusieurs sources à l’aide de points-virgules comme délimiteur ou en spécifiant -Source plusieurs fois.
  • Support de l’authentification du proxy : NuGet 1.4 ajoute le support de l’invite pour saisir des informations d’identification d’utilisateur lors de l’utilisation de NuGet derrière un proxy nécessitant une authentification.
  • Changement cassant de mise à jour nuget.exe : l’indicateur -Self est désormais requis pour que nuget.exe se mette à jour automatiquement. nuget.exe Update prend désormais un chemin d’accès au fichier packages.config et tentera de mettre à jour les packages. Notez que cette mise à jour est limitée, car elle ne va pas : ** mettre à jour, ajouter, supprimer du contenu dans le fichier projet. ** Exécutez des scripts PowerShell dans le package.

Support du serveur NuGet pour l’envoi de packages à l’aide de nuget.exe

NuGet inclut un moyen simple d’héberger un référentiel NuGet basé sur le Web léger via le package NuGet NuGet.Server. Avec NuGet 1.4, le serveur léger prend en charge l’envoi (push) et la suppression de packages à l’aide de nuget.exe. La dernière version de NuGet.Server ajoute d’un nouveau appSetting, nommé apiKey. Si vous omettez la clé ou la laissez vide, l’envoi (push) de packages au flux est désactivé. Le réglage de l’apiKey sur une valeur (idéalement un mot de passe fort) permet d’envoyer (push) des packages à l’aide de nuget.exe.

<appSettings>
    <!-- Set the value here to allow people to push/delete packages from the server.
            NOTE: This is a shared key (password) for all users. -->
    <add key="apiKey" value="" />
</appSettings>

Support des Outils de téléphone Windows Phone Édition Mango

NuGet est désormais pris en charge dans la version finale (RC) des Outils de téléphone Windows Phone pour Mango. Actuellement, les Outils de téléphone Windows Phone ne prennent pas en charge le gestionnaire d’extensions Visual Studio afin d’installer NuGet pour Outils Windows Phone vous devrez peut-être télécharger et exécuter manuellement VSIX.

Pour désinstaller NuGet pour Outils de téléphone Windows Phone, exécutez la commande suivante.

vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5

Correctifs de bogues

NuGet 1.4 avait un total de 88 éléments de travail corrigés. 71 de ces éléments ont été marqués comme des bogues.

Pour obtenir la liste complète des éléments de travail corrigés dans NuGet 1.4, veuillez consulter [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=All&type=All&priority=All&release=NuGet%201.4&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0).

Correctifs de bogues à noter :

  • [Issue 603](http://nuget.codeplex.com/workitem/603) : les dépendances de package entre différents référentiels sont résolues correctement lors de la spécification d’une source de package spécifique.
  • [Issue 1036](http://nuget.codeplex.com/workitem/1036) : l’ajout de NuGet Pack SomeProject.csproj à un événement post-build n’entraîne plus de boucle infinie.
  • [Issue 961](http://nuget.codeplex.com/workitem/961) : l’indicateur -Source prend en charge les chemins d’accès relatifs.

Mise à jour de NuGet 1.4

Peu après la publication de NuGet 1.4, nous avons trouvé deux problèmes importants à corriger. Le numéro de version spécifique de cette mise à jour vers la version 1.4 est le numéro 1.4.20615.9020.

Correctifs de bogues

  • [Issue 1220](http://nuget.codeplex.com/workitem/1220) : Update-Package n’exécute pas install.ps1/uninstall.ps1 dans tous les projets lorsqu’il existe plus d’un projet
  • [Issue 1156](http://nuget.codeplex.com/workitem/1156) : Gestionnaire de package Consol bloqué sur W2K3/XP (lorsque PowerShell 2 n’est pas installé)