Notes de publication NuGet 2.5NuGet 2.5 Release Notes

Notes de publication de NuGet 2.2.1 | Notes de publication de NuGet 2.6NuGet 2.2.1 Release Notes | NuGet 2.6 Release Notes

NuGet 2.5 a été publiée le 25 avril 2013.NuGet 2.5 was released on April 25, 2013. Cette version a été tellement volumineux, nous avons pensé obligés à ignorer les versions 2.3 et 2.4 !This release was so big, we felt compelled to skip versions 2.3 and 2.4! À ce jour, il s’agit la plus grande version nous offrons pour NuGet, avec sur 160 des éléments de travail dans la version.To date, this is the largest release we've had for NuGet, with over 160 work items in the release.

RemerciementsAcknowledgements

Nous aimerions remercier les collaborateurs externes suivants pour leur contribution significative à NuGet 2.5 :We would like to thank the following external contributors for their significant contributions to NuGet 2.5:

  1. Daniel Plaisted (@dsplaisted)Daniel Plaisted (@dsplaisted)
    • #2847 -MonoAndroid ajouter MonoTouch et MonoMac à la liste des identificateurs de framework cible connus.#2847 - Add MonoAndroid, MonoTouch, and MonoMac to the list of known target framework identifiers.
  2. Aragoneses g. Andres (@knocte)Andres G. Aragoneses (@knocte)
    • #2865 -corriger l’orthographe du NuGet.targets pour un système d’exploitation de la casse#2865 - Fix spelling of NuGet.targets for a case-sensitive OS
  3. David Fowler (@davidfowl)David Fowler (@davidfowl)
    • Vérifiez la solution build sur Mono.Make the solution build on Mono.
  4. Andrew Theken (@atheken)Andrew Theken (@atheken)
    • Corrigez les tests unitaires échoue sur Mono.Fix unit tests failing on Mono.
  5. Olivier Dagenais (@OliIsCool)Olivier Dagenais (@OliIsCool)
    • #2920 -commande pack de nuget.exe ne propage pas les propriétés pour MSBuild#2920 - nuget.exe pack command does not propagate Properties to MSBuild
  6. Miroslav Bajtos (@bajtos)Miroslav Bajtos (@bajtos)
    • #1511 - XML modifiés code de gestion pour conserver la mise en forme.#1511 - Modified XML handling code to preserve formatting.
  7. ADAM Ralph (@adamralph)Adam Ralph (@adamralph)
    • Mots reconnus ajoutés au dictionnaire personnalisé pour autoriser build.cmd réussisse.Added recognized words to custom dictionary to allow build.cmd to succeed.
  8. Bruno RoggeriBruno Roggeri
    • Corrigez les tests unitaires lors de l’exécution dans Visual Studio localisée.Fix unit tests when running in localized VS.
  9. Gareth EvansGareth Evans
    • Interface extraite à partir de PackageServiceExtracted interface from PackageService
  10. Maxime Brugidou (@brugidou)Maxime Brugidou (@brugidou)
    • #936 -gérer les dépendances du projet lors de la compression#936 - Handle project dependencies when packing
  11. Xavier Decoster (@XavierDecoster)Xavier Decoster (@XavierDecoster)
    • #2991, #3164 -prise en charge clair texte mot de passe lors du stockage des informations d’identification de source de package dans les fichiers nuget.cofig#2991, #3164 - Support Clear Text Password when storing package source credentials in nuget.cofig files
  12. James Manning (@manningj)James Manning (@manningj)
    • #3190, #3191 -description de help Get-Package corriger#3190, #3191 - Fix Get-Package help description

Nous apprécions également les personnes suivantes pour rechercher les bogues avec NuGet 2.5 Beta/RC qui ont été approuvées et résolus avant la version finale :We also appreciate the following individuals for finding bugs with NuGet 2.5 Beta/RC that were approved and fixed before the final release:

  1. Tony mur (@CodeChief)Tony Wall (@CodeChief)
    • #3200 - MSTest rompue avec la dernière NuGet 2.4 et 2.5 builds#3200 - MSTest broken with lastest NuGet 2.4 and 2.5 builds

Fonctionnalités notables dans la versionNotable features in the release

Autoriser les utilisateurs à remplacer les fichiers de contenu qui existent déjàAllow users to overwrite content files that already exist

Une des fonctionnalités plus demandées de tout le temps a été la possibilité de remplacer les fichiers de contenu qui existent déjà sur le disque lorsque inclus dans un package NuGet.One of the most requested features of all time has been the ability to overwrite content files that already exist on disk when included in a NuGet package. À compter de NuGet 2.5, ces conflits sont identifiés et vous êtes invité à écraser les fichiers, tandis que précédemment ces fichiers étaient toujours ignorés.Starting with NuGet 2.5, these conflicts are identified and you are prompted to overwrite the files, whereas previously these files were always skipped.

Remplacer les fichiers de contenu

« mise à jour de nuget.exe » et « Install-Package' maintenant les deux ont une nouvelle option «-FileConflictAction » pour définir une valeur par défaut pour les scénarios de ligne de commande.'nuget.exe update' and 'Install-Package' now both have a new option '-FileConflictAction' to set some default for command-line scenarios.

Définir une action par défaut lorsqu’un fichier à partir d’un package existe déjà dans le projet cible.Set a default action when a file from a package already exists in the target project. La valeur « Remplacer » pour toujours remplacer les fichiers.Set to 'Overwrite' to always overwrite files. La valeur est « Ignorer » pour ignorer des fichiers.Set to 'Ignore' to skip files. Si non spécifié, vous êtes invité pour chaque fichier en conflit.If not specified, it will prompt for each conflicting file.

Importation automatique des fichiers de cibles et de propriétés MSBuildAutomatic import of MSBuild targets and props files

Un nouveau dossier traditionnel a été créé au niveau supérieur du package NuGet.A new conventional folder has been created at the top level of the NuGet package. En tant qu’homologue à \lib, \content, et \tools, vous pouvez désormais inclure une \build dossier dans votre package.As a peer to \lib, \content, and \tools, you can now include a \build folder in your package. Dans ce dossier, vous pouvez placer les deux fichiers portant des noms fixes, {packageid}.targets ou {packageid}.props.Under this folder, you can place two files with fixed names, {packageid}.targets or {packageid}.props. Ces deux fichiers peuvent être directement sous build ou sous des dossiers spécifiques à l’infrastructure comme les autres dossiers.These two files can be either directly under build or under framework-specific folders just like the other folders. La règle pour le dossier de framework mieux mise en correspondance de prélèvement est exactement le même que dans ceux.The rule for picking the best-matched framework folder is exactly the same as in those.

Quand NuGet installe un package avec des fichiers \build, il ajoutera un MSBuild <Import> élément dans le fichier projet pointant vers le .targets et .props fichiers.When NuGet installs a package with \build files, it will add an MSBuild <Import> element in the project file pointing to the .targets and .props files. Le .props fichier est ajouté en haut, tandis que le .targets fichier est ajouté au bas.The .props file is added at the top, whereas the .targets file is added to the bottom.

Spécifiez des références différentes par à l’aide de la plateforme <References/> élémentSpecify different references per platform using <References/> element

Avant de 2.5, dans .nuspec fichier, utilisateur peut uniquement spécifier les fichiers de référence, doit être ajouté pour toutes les framework.Before 2.5, in .nuspec file, user can only specify the reference files, to be added for all framework. Maintenant avec cette nouvelle fonctionnalité dans 2.5, l’utilisateur peut créer le <reference/> pour chacun de la plateforme prise en charge, par exemple :Now with this new feature in 2.5, user can author the <reference/> element for each of the supported platform, for example:

<references>
    <group targetFramework="net45">
        <reference file="a.dll" />
    </group>
    <group targetFramework="netcore45">
        <reference file="b.dll" />
    </group>
    <group>
        <reference file="c.dll" />
    </group>
</references>

Voici le flux de la façon dont NuGet ajoute des références aux projets basés sur le .nuspec fichier :Here is the flow for how NuGet adds references to projects based on the .nuspec file:

  1. Rechercher le lib dossier qui est approprié pour le framework cible et d’obtenir la liste des assemblys à partir de ce dossierFind the lib folder that is appropriate for the target framework and get the list of assemblies from that folder
  2. Séparément, recherchez le groupe de références qui convient pour le framework cible et obtenir la liste des assemblys à partir de ce groupe.Separately find the references group that is appropriate for the target framework and get the list of assemblies from that group. Groupe de référence sans le framework cible spécifié est le groupe de secours.Reference group without target framework specified is the fallback group.
  3. Recherche l’intersection des deux listes et l’utiliser comme les références à ajouterFind the intersection of the two lists, and use that as the references to add

Cette nouvelle fonctionnalité permet aux auteurs de package d’utiliser la fonctionnalité de références pour appliquer des sous-ensembles d’assemblys à différentes infrastructures lorsqu’ils ont besoin dans le cas contraire exécuter des assemblys en double dans plusieurs lib dossiers.This new feature will allow package authors to use the References feature to apply subsets of assemblies to different frameworks when they would otherwise need to carry duplicate assemblies in multiple lib folders.

Remarque : vous devez actuellement utiliser pack de nuget.exe pour utiliser cette fonctionnalité. Explorateur de Package NuGet ne prend pas en charge il.Note: you must presently use nuget.exe pack to use this feature; NuGet Package Explorer does not yet support it.

Bouton tout pour autoriser la mise à jour tous les packages à la fois de mettre à jourUpdate All button to allow updating all packages at once

Beaucoup d'entre vous savent sur l’applet de commande PowerShell de « Package de mise à jour » pour mettre à jour tous vos packages ; maintenant il est un moyen simple de le faire via l’interface utilisateur également.Many of you know about the "Update-Package" PowerShell cmdlet to update all of your packages; now there's an easy way to do this through the UI as well.

Pour essayer cette fonctionnalité :To try this feature out:

  1. Créez une application ASP.NET MVCCreate a new ASP.NET MVC application
  2. Lancer la boîte de dialogue « Gérer les Packages NuGet »Launch the 'Manage NuGet Packages' dialog
  3. Sélectionnez « Mises à jour »Select 'Updates'
  4. Cliquez sur le bouton « Update All »Click the 'Update All' button

Bouton tous dans la boîte de dialogue Mettre à jour

Prise en charge des références de projet améliorée pour le Pack de nuget.exeImproved project reference support for nuget.exe Pack

Maintenant le processus de commande nuget.exe pack référencés projets avec les règles suivantes :Now nuget.exe pack command processes referenced projects with the following rules:

  1. Si le projet référencé a correspondant .nuspec de fichier, par exemple, il existe un fichier appelé proj1.nuspec dans le même dossier que proj1.csproj, puis ce projet est ajouté en tant que dépendance au package, à l’aide de l’id et version lire à partir de la .nuspec fichier.If the referenced project has corresponding .nuspec file, e.g. there is a file called proj1.nuspec in the same folder as proj1.csproj, then this project is added as a dependency to the package, using the id and version read from the .nuspec file.
  2. Sinon, les fichiers du projet référencé sont regroupées dans le package.Otherwise, the files of the referenced project are bundled into the package. Les projets référencés par ce projet seront traitées à l’aide de l’Afficheur de manière récursive les règles.Then projects referenced by this project will be processed using the sames rules recursively.
  3. Toutes les DLL, .pdb, et .exe fichiers sont ajoutés.All DLL, .pdb, and .exe files are added.
  4. Tous les autres fichiers de contenu sont ajoutés.All other content files are added.
  5. Toutes les dépendances sont fusionnées.All dependencies are merged.

Cela permet à un projet référencé est traitée comme une dépendance s’il existe un .nuspec de fichier, dans le cas contraire, il devient partie intégrante du package.This allows a referenced project to be treated as a dependency if there is a .nuspec file, otherwise, it becomes part of the package.

Plus de détails ici : http://nuget.codeplex.com/workitem/936More details here: http://nuget.codeplex.com/workitem/936

Ajouter une propriété « NuGet Version Minimum » aux packagesAdd a 'Minimum NuGet Version' property to packages

Un nouvel attribut de métadonnées appelé « minClientVersion » peut indiquer maintenant la version minimale du client NuGet nécessaire pour utiliser un package.A new metadata attribute called 'minClientVersion' can now indicate the minimum NuGet client version required to consume a package.

Cette fonctionnalité vous aide à l’auteur du package pour spécifier qu’un package fonctionnera uniquement après une version particulière de NuGet.This feature helps package author to specify that a package will work only after a particular version of NuGet. En tant que nouveaux .nuspec fonctionnalités sont ajoutées après NuGet 2.5, packages seront en mesure de demander une version minimale de NuGet.As new .nuspec features are added after NuGet 2.5, packages will be able to claim a minimum NuGet version.

<metadata minClientVersion="2.6">

Si l’utilisateur a NuGet 2.5 installé et un package est identifié comme nécessitant 2.6, signaux visuels seront accordée à l’utilisateur qui indique le package ne sera pas installable.If the user has NuGet 2.5 installed and a package is identified as requiring 2.6, visual cues will be given to the user indicating the package will not be installable. L’utilisateur sera ensuite être guidé pour mettre à jour leur version de NuGet.The user will then be guided to update their version of NuGet.

Cela améliorera l’expérience existant dans lequel les packages commencent à installer, mais échouer puis indiquant qu'une version de schéma non reconnu a été identifiée.This will improve upon the existing experience where packages begin to install but then fail indicating an unrecognized schema version was identified.

Dépendances ne sont plus inutilement sont mises à jour que lors de l’installation du packageDependencies are no longer unnecessarily updated during package installation

Avant NuGet 2.5, lorsqu’un package a été installé qui dépendent d’un package déjà installé dans le projet, la dépendance est actualisée dans le cadre de la nouvelle installation, même si la version existante satisfait la dépendance.Before NuGet 2.5, when a package was installed that depended on a package already installed in the project, the dependency would be updated as part of the new installation, even if the existing version satisfied the dependency.

À partir de NuGet 2.5, si une version de dépendance est déjà satisfaite, la dépendance n’est pas modifiée pendant l’installation des autres packages.Starting with NuGet 2.5, if a dependency version is already satisfied, the dependency will not be updated during other package installations.

Le scénario :The scenario:

  1. Le référentiel source contient le package B version 1.0.0 et version 1.0.2.The source repository contains package B with version 1.0.0 and 1.0.2. Il contient également le package A qui a une dépendance sur B (> = 1.0.0).It also contains package A which has a dependency on B (>= 1.0.0).
  2. Partons du principe que le projet actif possède déjà la version du package B 1.0.0 installé.Assume that the current project already has package B version 1.0.0 installed. Voulez-vous installer a de package.Now you want to install package A.

Dans NuGet 2.2 et versions antérieure :In NuGet 2.2 and older:

  • Lorsque vous installez le package A, NuGet mettra automatiquement à jour B à la version 1.0.2, même si la version 1.0.0 satisfait déjà à la contrainte de version de dépendance, qui est > = 1.0.0.When installing package A, NuGet will auto-update B to 1.0.2, even though the existing version 1.0.0 already satisfies the dependency version constraint, which is >= 1.0.0.

Dans NuGet 2.5 et versions ultérieures :In NuGet 2.5 and newer:

  • NuGet est plus mis à jour B, car il détecte que la version existante 1.0.0 satisfait à la contrainte de version de dépendance.NuGet will no longer update B, because it detects that the existing version 1.0.0 satisfies the dependency version constraint.

Pour plus d’informations sur cette modification, consultez le élément de travail , ainsi que les informations connexes de discussion.For more background on this change, read the detailed work item as well as the related discussion thread.

NuGet.exe génère des requêtes http avec commentaires détaillésnuget.exe outputs http requests with detailed verbosity

Si vous dépannez nuget.exe ou simplement curieux de savoir quelles requêtes HTTP sont effectuées pendant les opérations, le '-commentaires détaillés ' commutateur sera désormais générer une sortie toutes les requêtes HTTP sont effectuées.If you are troubleshooting nuget.exe or just curious what HTTP requests are made during operations, the '-verbosity detailed' switch will now output all HTTP requests made.

Sortie HTTP à partir de nuget.exe

push de NuGet.exe prend désormais en charge les sources UNC et le dossiernuget.exe push now supports UNC and folder sources

Avant NuGet 2.5, si vous essayez d’exécuter 'push de nuget.exe' à une source de package basée sur un chemin d’accès UNC ou un dossier local, l’envoi échouerait.Before NuGet 2.5, if you attempted to run 'nuget.exe push' to a package source based on a UNC path or local folder, the push would fail. Avec la fonctionnalité de configuration hiérarchique ajoutées récemment, il était devenu commun pour nuget.exe devoir cibler une source/dossier UNC ou une galerie NuGet basée sur HTTP.With the recently added hierarchical configuration feature, it had become common for nuget.exe to need to target either a UNC/folder source, or an HTTP-based NuGet Gallery.

À partir de NuGet 2.5, si nuget.exe identifie une source/dossier UNC, elle effectue la copie du fichier à la source.Starting with NuGet 2.5, if nuget.exe identifies a UNC/folder source, it will perform the file copy to the source.

La commande suivante fonctionnera maintenant :The following command will now work:

nuget push -source \\mycompany\repo\ mypackage.1.0.0.nupkg

NuGet.exe prend en charge explicitement spécifié les fichiers de configurationnuget.exe supports explicitly-specified Config files

les commandes de NuGet.exe qui accèdent à présent de configuration (toutes à l’exception de « spécification » et « pack ») prennent en charge un nouveau »-ConfigFile' option, qui force un fichier de configuration spécifiques à utiliser à la place le fichier de configuration par défaut dans % AppData%\nuget\Nuget.Config.nuget.exe commands that access configuration (all except 'spec' and 'pack') now support a new '-ConfigFile' option, which forces a specific config file to be used in place of the default config file at %AppData%\nuget\Nuget.Config.

Exemple :Example:

nuget sources add -name test -source http://test -ConfigFile C:\test\.nuget\Nuget.Config

Prise en charge pour les projets natifsSupport for Native projects

Avec NuGet 2.5, les outils de NuGet sont désormais disponible pour les projets natifs dans Visual Studio.With NuGet 2.5, the NuGet tooling is now available for Native projects in Visual Studio. Nous prévoyons plus packages natifs utilisera la fonctionnalité d’importations MSBuild ci-dessus, à l’aide d’un outil créé par le CoApp projet.We expect most native packages will utilize the MSBuild imports feature above, using a tool created by the CoApp project. Pour plus d’informations, consultez les détails de l’outil sur le site Web coapp.org.For more information, read the details about the tool on the coapp.org website.

Le nom du framework cible du « native » est introduit pour les packages inclure des fichiers \build, \content et \tools lorsque le package est installé dans un projet natif.The target framework name of "native" is introduced for packages to include files in \build, \content, and \tools when the package is installed into a native project. Le `lib' dossier n’est pas utilisé pour les projets natifs.The `lib` folder is not used for native projects.