Notes de publication de NuGet 6.0
Véhicules de distribution NuGet :
Version de NuGet | Disponible dans la version Visual Studio | Disponible dans les Kit de développement logiciel (SDK) .NET |
---|---|---|
6.0.0 | Visual Studio 2022 version 17.0.0 | 6.0.01 |
6.0.1 | Visual Studio 2022 version 17.0.2 | S/O |
6.0.2 | Visual Studio 2022 version 17.0.11 | 6.0.3011 |
6.0.3 | Visual Studio 2022 version 17.0 | 6.0.1101 |
6.0.5 | S/O | 6.0.1181 |
6.0.6 | S/O | 6.0.1271 |
1 Installé avec Visual Studio 2022 avec la charge de travail .NET Core
- [Sécurité] : Microsoft Security Advisory CVE-2024-0057 | Vulnérabilité de contournement de la fonctionnalité de sécurité du client NuGet – #12653
- [Sécurité] : Microsoft Security Advisory CVE-2023-29337 | Vulnérabilité d’exécution de code à distance du client NuGet - #12653
Notes
Il y a un changement de comportement critique sous Linux. L’emplacement du dossier temporaire, où NuGet stocke les fichiers temporaires pendant ses différentes opérations, a changé de /tmp/NuGetScratch
à /tmp/NuGetScratch<username>
. Par exemple, pour l’utilisateur User1, le dossier temporaire sera /tmp/NuGetScratchUser1
.
- [Securité] : Microsoft Security Advisory CVE-2022-41032 | Vulnérabilité d’élévation de privilèges dans .NET- #12149
Notes
Visual Studio 17.0, MSBuild 17.0 et .NET 6.0 nécessite NuGet.exe 6.0 ou version supérieure.
- [Sécurité] : Microsoft Security Advisory CVE 2022-30184 | Vulnérabilité de divulgation d’informations dans .NET - #11883
🎉 Il s’agit de la première version permettant d’offrir une prise en charge complète de la création et de la restauration des packages NuGet ciblant .NET 6.0 🎉
NuGet 6.0 est la première version à offrir une prise en charge complète de la création et de la restauration des packages NuGet pour .NET 6.0. Vous pouvez désormais cibler les version cible de .Net Framework suivants :
- net6.0
- net6.0-windows
- net6.0-android
- net6.0-ios
- net6.0-macos
- net6.0-maccatalyst
- net6.0-tvos
- net6.0-tizen
Si vous n'êtes pas familier avec les cibles .NET 6.0 aujourd'hui ou ce à quoi elles ressembleront à l'avenir, n'oubliez pas de jeter un coup d'œil à la section spécification TFM .NET 6.0.
Au début de l'année, de nombreux gestionnaires de paquets ont été informés d'attaques par confusion de dépendances dans lesquelles un utilisateur peut être amené à installer une dépendance malveillante au lieu de celle qu'il avait l'intention d'installer. Pour renforcer votre chaîne d’approvisionnement logicielle contre ces attaques, l’équipe NuGet a développé une nouvelle fonctionnalité qui vous permet de mapper vos dépendances à des sources spécifiques. Vous trouverez ci-dessous un exemple de la façon dont vous pouvez utiliser le mappage source pour protéger vos projets.
<!-- Define a global packages folder for your repository. -->
<!-- This is where installed packages will be stored locally. -->
<config>
<add key="globalPackagesFolder" value="globalPackagesFolder" />
</config>
<!-- Define my package sources, nuget.org and contoso.com. -->
<!-- `clear` ensures no additional sources are inherited from another config file. -->
<packageSources>
<clear />
<!-- `key` can be any identifier for your source. -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="contoso.com" value="https://contoso.com/packages/" />
</packageSources>
<!-- Define mappings by adding package ID patterns beneath the target source. -->
<!-- Contoso.* packages will be restored from contoso.com, everything else from nuget.org. -->
<packageSourceMapping>
<!-- key value for <packageSource> should match key values from <packageSources> element -->
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
<packageSource key="contoso.com">
<package pattern="Contoso.*" />
</packageSource>
</packageSourceMapping>
Vous pouvez en savoir plus sur le mappage de source dans notre blog publié plus tôt cette année.
Lorsque vous utilisez le Gestionnaire de package NuGet dans Visual Studio, vous verrez maintenant des vulnérabilités de package pour vos packages, notamment le nombre et la gravité des vulnérabilités, ainsi que des liens directs pour en savoir plus sur les avis.
Il existe désormais un indicateur NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY
permettant d’améliorer le comportement de réessai et d’interruption des clients NuGet en ce qui concerne l’augmentation du nombre maximum de tentatives et de retard pour une expérience plus résiliente en cas de connexion Internet plus faible.
Vous pouvez maintenant utiliser l’indicateur <AllowedOutputExtensionsInPackageBuildOutputFolder>
MSBuild pour modifier les extensions de fichier incluses dans la sortie de version de votre package. Cela vous donne plus de contrôle sur les extensions incluses dans votre dossier de sortie de version.
Les packages déconseillés dans Visual Studio incluent désormais un lien vers le package alternatif suggéré à utiliser. Vous pouvez utiliser cette fonctionnalité pour parcourir et installer rapidement des packages qui sont gérés activement.
Vous pouvez maintenant ajouter un package README.md fichier directement dans Visual Studio. Un fichier README permet de communiquer des informations importantes sur votre package. Il est souvent le premier élément qu’un visiteur verra lors de la visite de votre package sur NuGet.org. Les fichiers README incluent généralement des informations sur :
- Ce que fait le package
- Pourquoi le package est utile
- Comment les utilisateurs peuvent commencer à utiliser le package
- Où les utilisateurs peuvent obtenir de l’aide ou contribuer à votre package
Vous pouvez en savoir plus sur l’ajout d’un fichier README à votre package NuGet sur notre blog.
Dans Visual Studio 2022, NuGet a redéfini le contrat entre la restauration de package NuGet et les composants Visual Studio courants afin d’améliorer les performances des solutions volumineuses en appelant la restauration une seule fois au lieu de plusieurs fois. Cela améliore le temps nécessaire pour que les processus en arrière-plan se terminent de manière significative.
Installez Visual Studio 2022 Preview et faites-nous savoir si vous constatez une expérience plus rapide lors du chargement de vos solutions volumineuses ou du basculement entre les branches !
NuGet.SolutionRestoreManager.Interop n’est plus mis à jour et ses API ont été fusionnées dans le package NuGet.VisualStudio. Si vous mettez à jour une extension Visual Studio existante pour fonctionner avec Visual Studio 2022 (17.0) et que vous utilisiez précédemment NuGet.SolutionRestoreManager.Interop, vous devez désinstaller ce package et installer NuGet.VisualStudio vers la version 6.0.0. Les espaces de noms et les classes restent identiques, de sorte qu’ils sont compatibles du point de vue de l’API.
En outre, après la modification de la politique de Visual Studio, NuGet.VisualStudio n’utilise plus EmbedInteropTypes
.
Par conséquent, votre extension aura une référence de temps de compilation à NuGet.VisualStudio.dll.
Nuget indique à Visual Studio d’utiliser des redirections de liaison. Votre extension n’est donc pas affectée lorsque NuGet met à jour les versions plus récentes et que votre extension est compilée sur une version antérieure de notre assembly.
Pour cette raison, vous pouvez supprimer les assemblys de NuGet de votre vsix pour réduire la taille de téléchargement.
Les packages nuGet seront mis à jour pour effectuer cette opération automatiquement dans NuGet 6.2 (pour Visual Studio 17.2).
Pour supprimer les assemblys de NuGet de votre vsix, ajoutez les éléments suivants à votre fichier projet :
<ItemGroup>
<SuppressFromVsix Include="NuGet.VisualStudio.dll" Visible="false" />
<SuppressFromVsix Include="NuGet.VisualStudio.Contracts.dll" Visible="false" />
</ItemGroup>
Fonctionnalités :
Ajout d’un hook pour exclure certaines extensions de sortie de build à partir du package nuget - #10690
Implémentation d’une nouvelle priorité pour les tfms xamarin lors de l’utilisation de net6.0+ - #10717
Implémentation d’un avertissement maccatalyst lors de la « restauration » vers xamarin.ios pour les projets net6.0+ - #10718
Ajout de la prise en charge des espaces de noms de package dans le cadre de la configuration - ajoute d’une fonctionnalité de lecture uniquement - #10725
Espaces de noms de package : compte du filtrage des espaces de noms de package dans le téléchargement du package dans la restauration PackageReference - #10732
Ajout de la prise en charge du filtrage des espaces de noms dans la restauration packages.config dans nuget.exe et msbuild /t :restore - #10737
Ajoutez un contrat pour identifier une source de restauration pour aider nuget à améliorer les restaurations par lots/commutateurs de branche. - #10807
Ajout de la prise en charge de net6.0-tizen et net6.0-android - #10819
Ajout de la prise en charge du filtrage des espaces de noms pour la restauration packages.config dans Visual Studio - #10823
Ajout de la prise en charge de TfmSpecificDebugSymbolsFile pour fournir des symboles dans la build interne - #10913
Affichage de l’icône d’avertissement sous l’onglet Installé s’il existe des packages vulnérables installés - #10982
Affichage de l’icône d’avertissement par package dans la liste des packages en cas de vulnérabilité - #10983
Affichage des détails de vulnérabilité du package dans le volet Détails du package du PMUI - #10985
Ajout des liens de dépréciation dans la page Détails de l’interface utilisateur PM - #10996
[Fonctionnalité] : Rend le nombre de nouvelles tentatives et le comportement d’interruption configurables pour les clients Nuget - #11027
[Fonctionnalité] : traite toutes les règles d’installation de package pour les espaces de noms de package fonctionnant dans les scénarios PackageReference et PackageDownload. - #11035
[Fonctionnalité] : Adresse toutes les règles d’installation de package pour les espaces de noms de package fonctionnant dans les projets de style Package Config - #11036
DCRs :
Envisager de supprimer l’extensibilité qui permet à d’autres gestionnaires de package d’être affichés comme compatibles - #6623
Arrêter d’utiliser EmbedInteropTypes pour les packages/assemblys VS extenibility de NuGet - #10892
Project.nuget.g.targets ne doit pas être ajouté à MSBuildAllProjects dans MSBuild 16 ou version supérieure. - #10895
Supprimer les API principales obsolètes - #10940
Fusionner NuGet.SolutionRestoreManager.Interop dans NuGet.VisualStudio - #10957
Supprimer RuntimeEnvironmentHelper.IsDev14 - #11000
Mettre à jour Newtonsoft.Json à 13.0.1 - #11095
[DCR] : Renommer la fonctionnalité packageNamespaces en PackageSourceMapping - #11205
Bogues :
L’installation avec le mode d’enregistrement de package « nuspec » se réinstalle toujours - #2402
Update-Package -réinstaller -ProjectName
<project>
ne fonctionne pas pour PR - #6088« Un élément avec la même clé a déjà été ajouté » : lorsque le graphique de projet possède le nom projectName == packageRef (de la même version) - #6795
[Échec de test] Suggérer de supprimer la deuxième chaîne dupliquée « Acceptation de la licence » dans la boîte de dialogue « Acceptation de la licence » - #8162
Impossible de supprimer la clé de configuration à l’aide de nuget.exe - #8223
msbuild /t :Restore et Visual Studio produisent différents fichiers de ressources lorsque le nom de l’assembly != nom du projet - #8272
L’interface utilisateur PM n’humanise pas le nombre de téléchargements quand 999 500 <= count <=999,999 - #8800
La suggestion de Roslyn Analyzer « installer avec le gestionnaire de package » ouvre NuGet à un onglet incorrect - #10124
StaticGraph Restore doit clairement appeler lorsqu’un projet n’est pas
KnownToBeMSBuildFormat
quand il est appelé via un fichier de solution - #10363La commande « nuget spec » génère un fichier .nuspec avec une icôneUrl - #10400
Rfc3161TimestampTokenInfo.GetNonce peut lever - #10484
Vérifier que la commande n’est pas désactivée sur Mono - #10585
La méthode CreateLockFileTargetLibrary ralentit l’opération de restauration - #10614
PackageArchieveReader ne remplace pas CopyNupkgAsync afin que l’extraction de package échoue - #10708
Propager des informations sur les espaces de noms de package dans la commande restore - #10736
Assure que le filtrage des espaces de noms est respecté dans l’installation/les mises à jour du package packages.config dans PMUI - #10738
NuGet.Packaging.Extraction : exceptions des ressources introuvables - #10776
Impossible d’utiliser packageReadmeFile incorporé lors de l’utilisation de snupkg pour les symboles - #10791
Supprime les commutateurs de retards d’interface utilisateur redondants dans l’initialisation du projet NuGet - #10824
Supprime les énumérations ToList inutiles dans les chemins de code de restauration - #10835
Marquer IVsPackageInstallerServices comme déconseillé - #10836
Les packages NuGet téléchargés plus de 1 milliard de fois montrent l’unité incorrecte - #10864
Difficile de voir la couleur d’arrière-plan du nombre à droite des onglets « Mises à jour » et « Consolider » dans le thème sombre - #10896
Améliorations apportées à IVsProjectRestoreInfoSource - #10898
packages.lock.json bloqué avec le projet Sdk-Style C# ciblant net5.0-windows - #10901
Ajoute une implémentation par défaut pour IVsSolutionRestoreService4 - #10908
[Réactivité] Suppression du RPC implicite du thread d’arrière-plan via des extensions GetServiceAsync inutiles - #10916
La boxe de bool consistant à calculer le code de hachage provoque des allocations excessives - #10917
L’itération sur les dépendances de bibliothèque provoque une sur-allocation d’énumérateurs - #10918
La recherche du cache de compatibilité alloue Func pour chaque recherche - #10919
Surallocations de WhereListIterator dans DependencyWalker.CreateGraphNode - #10920
Exception lors de la restauration : « Restaurer les métadonnées mettant en erreur la liste des version cible de .Net Framework requise » - #10924
Partager un réducteur de framework entre les conventions de code managé - #10925
NuGet VSIX est généré avec des redirections de liaison incorrectes - #10946
Retards de l’interface utilisateur du Gestionnaire de package NuGet lors de l’exécution de scripts init - #10947
Prise en charge de sourceUri transmise sur le package de restauration/installation de nuget et dotnet restore ou d’autres commandes équivalentes - #10948
Prise en charge du filtrage des espaces de noms pour la commande d’installation de nuget.exe - #10961
Arrêter la génération de propriétés brutes pour chaque segment - #10969
NU1605 inattendu d’une référence transitive qui n’a jamais été sélectionnée (sous-graphe élagué) - #10972
NuGet.Localization n’a pas d’icône de package - #10975
Évite de redimensionner inutilement le dictionnaire lors du calcul de la fermeture du projet - #10976
Documentation en conflit sur i Paramètres. AddOrUpdate - #10980
Utilisation d’un tableau d’octets mis en pool lors de la copie des fichiers et de la validation des signatures - #10988
Évite les allocations Task.WhenAny dans le walker de dépendances - #10989
Garantie que le filtrage des espaces de noms est respecté dans l’installation/les mises à jour du package packages.config PMC - #11001
Garantie que le filtrage des espaces de noms est respecté dans packages.config installation/mise à jour des paquets API d'installation d'IVs - #11002
[Bogue] : l’interface utilisateur PM affiche 0 nombre de téléchargements lorsque le package sélectionné est déjà installé - #11012
Réduit les allocations dans VersionFormatter - #11014
Types inutilisés obsolètes : LibraryDependencyType et connexe - #11015
[Bogue] :
nuget.exe install packages.config
ne respecte pas-PackageSaveMode nuspec
- #11018[Bogue] :
$(IsPackable)
n’est pas cité - #11025Créer des tests Apex avec des référentiels multi sources pour le filtrage de l’espace de noms du package PMUI - #11026
[Bogue] : [Accessibilité] Liens difficiles à lire dans les résultats de recherche de l’interface utilisateur PM à l’aide du thème clair ou foncé - #11055
IVsSolutionRestoreService4 doit étendre IVsSolutionRestoreService3 - #11098
[Bogue] : les liens de conseil doivent être alignés dans le volet d’informations de PMUI - #11101
L’info-bulle de l’icône d’avertissement des versions de package vulnérables/déconseillées installées n’est pas claire - #11103
[Réactivité] RestoreOperationLogger+StatusBarProgress.Dispose bloquant un thread de pool de threads en attente du thread d’interface utilisateur - #11115
Ajoute une heure depuis la dernière métrique de restauration - #11124
[Bogue] : régression de nuget.exe dans la gestion des entrées récursives
<files>
comprises entre 5.9.1 et 5.10.0 - #11125En attente de WhenNominated lorsqu'un projet a une nomination en attente - #11132
Option sourceUri prise en charge transmise sur dotnet add package - #11140
[Bogue] : l’interface utilisateur VS PM n’affiche pas les icônes JPEG pour les packages - #11144
UIDelay :
nuget.packagemanagement.visualstudio.dll!NuGet.PackageManagement.VisualStudio.VsCoreProjectSystemReferenceReader+<GetProjectReferencesAsync>d__
- Projets CPS - #11162[Bogue] :
dotnet list package --outdated --interactive
rend le cache invalidé par le fournisseur d’informations d’identification pour chaque package répertorié - #11169[Bogue] : Les espaces de noms de package pour les scénarios packages.config utilisent toutes les sources comme option de secours lorsqu’aucun espace de noms correspondant n’est trouvé pour un package - #11170
Évite les recherches MEF sur le thread d’interface utilisateur pendant l’initialisation des projets NuGet - #11176
[Bogue] : l’info-bulle sur l’image de l’indicateur d’avertissement dans l’onglet Installé ne fonctionne plus - #11183
Tous les appels ServiceLocator qui récupèrent les services MEF doivent éviter le thread d’interface utilisateur. - #11201
[Bogue] : événement de télémétrie manquant dans Visual Studio - #11206
Évite les appels EnvDTEProjectUtility.IsSupportedAsync dupliqués - #11207
Ajout de IVsSolutionManager.GetSolutionDirectoryAsync : amélioration des performances et arrêt du blocage du thread appelant dans des chemins de code asynchrones. - #11208
Renomme les types/variables dans le code de produit/test pour refléter le nouveau nom de la fonctionnalité d’espaces de noms de package - #11216
[Bogue] : la génération ArPow ne fonctionne pas correctement lorsqu’elle se trouve dans un sous-répertoire d’un référentiel Git non lié - #11227
liste dupackage dotnet --vulnérable, --déconseillé, --obsolète ne fonctionne pas pour les positifs transitif uniquement - #10767
Liste de tous les problèmes résolus dans cette version - 6.0
Liste des validations dans cette version - 6.0.0
Seul Visual Studio a été mis à jour avec cette version de NuGet.
- [Bogue] : Impossible d’obtenir INuGetProjectService à partir du service Broker dans Visual Studio 17 - #11367
- [Bogue] : Gestionnaire de package d’initialisation de la console peut entraîner des interblocages - #11320
Liste des validations dans cette version - 6.0.1
Merci à tous les contributeur qui ont aidé à rendre cette version NuGet géniale !
Qui | PRs | Problèmes |
---|---|---|
omajid | 3866 | Gére la valeur null dans Rfc3161TimestampTokenInfo - #10484 |
marcin-krystianc | 3934 | Ajout d’un cache pour LockFileTargetLibrary - #10614 |
krafs | 4151 | Suppression de la valeur de retour de la documentation sur I Paramètres. AddOrUpdate - #10980 |
huangqinjin | 4148 | Corrige packageSaveMode nuspec se réinstalle toujours - #2402 |
Insomniak47 | 4190 | fix(docs) : supprime le lien vers le lien fermé/mort dans les instructions de contribution - #8987 |
marcin-krystianc | 4194 | Rend le compte des scripts de performances pour les échecs d’opération de restauration - #9968 |
eriawan | 4159 | Correctifs Surround ($IsPackable) avec guillemets simples - #11025 |
huangqinjin | 4193 | Installer packages.config doit respecter PackageSaveMode - #11018 |
mfkl | 4199 | test : utilise la nouvelle DependencyGraphSpec - #11168 |
omajid | 4254 | Utilise --work-tree avec git apply - #11227 |
Vos commentaires sont très importants pour nous. S’il existe des problèmes avec cette version, vérifiez nos problèmes GitHub et Visual Studio Developer Community pour les problèmes existants. Pour les nouveaux problèmes dans NuGet, signalez un Problème GitHub. Pour connaître les problèmes généraux liés à l’expérience NuGet, faites-nous en part via l’option Signaler un problème dans votre IDE favori sous Aide > Signaler un problème.