Delen via


Releaseopmerkingen voor NuGet 6.0

NuGet-distributievoertuigen:

NuGet-versie Beschikbaar in Visual Studio-versie Beschikbaar in .NET SDK('s)
6.0.0 Visual Studio 2022 versie 17.0.0 6.0.01
6.0.1 Visual Studio 2022 versie 17.0.2 N/A
6.0.2 Visual Studio 2022 versie 17.0.11 6.0.3011
6.0.3 Visual Studio 2022 versie 17.0 6.0.1101
6.0.5 N/A 6.0.1181
6.0.6 N/A 6.0.1271

1 Geïnstalleerd met Visual Studio 2022 with.NET Core-workload

Samenvatting: Nieuw in 6.0.6

  • [Beveiliging]: Microsoft Security Advisory CVE-2024-0057 | Beveiligingsprobleem met NuGet-clientbeveiligingsfunctie omzeilen - #12653

Samenvatting: Wat is er nieuw in 6.0.5

  • [Beveiliging]: Microsoft Security Advisory CVE-2023-29337 | Beveiligingsprobleem met uitvoering van externe code van NuGet-client - #12653

Opmerking

Er is een wijziging die fouten optreedt in Linux. De locatie van de tijdelijke map, waar NuGet tijdelijke bestanden opslaat tijdens de verschillende bewerkingen, is gewijzigd van /tmp/NuGetScratch ./tmp/NuGetScratch<username> Bijvoorbeeld voor gebruiker Gebruiker1 is de tijdelijke map /tmp/NuGetScratchUser1.

Samenvatting: Nieuw in 6.0.3

  • [Beveiliging]: Microsoft Security Advisory CVE-2022-41032 | .NET-uitbreiding van beveiligingsprobleem - #12149

Opmerking

Visual Studio 17.0, MSBuild 17.0 en .NET 6.0 vereisen NuGet.exe 6.0 of hoger.

Samenvatting: Nieuw in 6.0.2

  • [Beveiliging]: Microsoft Security Advisory CVE 2022-30184 | .NET Information Disclosure Vulnerability - #11883

Samenvatting: Wat is er nieuw in 6.0.0

🎉 Dit is de eerste release die volledige ondersteuning biedt voor het maken en herstellen van NuGet-pakketten die gericht zijn op .NET 6.0 🎉

Ondersteuning voor .NET 6

NuGet 6.0 is de eerste release die volledige ontwerp- en herstelondersteuning biedt voor NuGet-pakketten die gericht zijn op .NET 6.0. U kunt nu de volgende doelframeworks instellen:

  • net6.0
  • net6.0-windows
  • net6.0-android
  • net6.0-ios
  • net6.0-macos
  • net6.0-maccatalyst
  • net6.0-tvos
  • net6.0-tizen

.NET 6

Als u vandaag nog niet bekend bent met de .NET 6.0-doelen of hoe deze er in de toekomst uitziet, vergeet dan niet om de TFM-specificatie van .NET 6.0 te bekijken.

Brontoewijzing

Eerder dit jaar werden veel pakketbeheerders op de hoogte van afhankelijkheidsverwarringsaanvallen waarbij een gebruiker wordt misleid om een schadelijke afhankelijkheid te installeren in plaats van degene die ze bedoeld hebben. Om uw softwareleveringsketen tegen deze aanvallen te versterken, heeft het NuGet-team een nieuwe functie ontwikkeld waarmee u uw afhankelijkheden kunt toewijzen aan specifieke bronnen. Hieronder ziet u een voorbeeld van hoe u brontoewijzing kunt gebruiken om uw projecten te beveiligen.

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

Lees meer over bronmapping in onze blog die eerder dit jaar is uitgebracht.

Pakketproblemen in Visual Studio

Wanneer u NuGet Package Manager in Visual Studio gebruikt, ziet u nu pakketproblemen voor uw pakketten, waaronder details zoals het aantal en de ernst van beveiligingsproblemen, evenals directe koppelingen voor meer informatie over de adviezen.

Beveiligingsproblemen in Visual Studio-pakketten

Gedrag voor opnieuw proberen en uitstel

Er is nu een NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY flag om het poging en terugvalgedrag van NuGet-clients te verbeteren, zoals het verhogen van het maximale aantal pogingen en het verhogen van de vertraging voor een resistentere ervaring bij het tegenkomen van een zwakkere internetverbinding.

Standaardbestandsextensies uitsluiten

U kunt nu de MSBuild-vlag <AllowedOutputExtensionsInPackageBuildOutputFolder> gebruiken om de bestandsextensies te bewerken die zijn opgenomen in de build-uitvoer van uw pakket. Hierdoor hebt u meer controle over de extensies die worden opgenomen in de uitvoermap van de build.

Verbeterde verouderingsinformatie in Visual Studio

Afgeschafte pakketten in Visual Studio bevatten nu een koppeling naar het voorgestelde alternatieve pakket dat moet worden gebruikt. U kunt deze functie gebruiken om snel te bladeren en pakketten te installeren die actief worden onderhouden.

Afschaffingen van Visual Studio-pakketten

Een pakket-README toevoegen in Visual Studio

U kunt nu rechtstreeks in Visual Studio een pakket README.md-bestand toevoegen. Een README helpt belangrijke informatie over uw pakket te communiceren. Het is vaak het eerste item dat een bezoeker zal zien bij het bezoeken van uw pakket op NuGet.org. LEESMIJ-bestanden bevatten doorgaans informatie over:

  • Wat het pakket doet
  • Waarom het pakket nuttig is
  • Hoe gebruikers aan de slag kunnen met het pakket
  • Waar gebruikers hulp kunnen krijgen of bijdragen aan uw pakket

Meer informatie over het toevoegen van een README aan uw NuGet-pakket vindt u in onze blog.

Sneller laden van oplossingen en overschakelen tussen branches in Visual Studio

In Visual Studio 2022 heeft NuGet het contract tussen NuGet-pakketherstel en algemene Visual Studio-onderdelen opnieuw gedefinieerd om de prestaties voor grote oplossingen te verbeteren door slechts eenmaal herstel aan te roepen in plaats van meerdere keren. Dit verbetert de tijd die het kost om achtergrondprocessen aanzienlijk te voltooien.

Installeer Visual Studio 2022 Preview en laat het ons weten als u een snellere ervaring ondervindt bij het laden van uw grote oplossingen of het schakelen tussen vertakkingen.

De Visual Studio API's van NuGet SolutionRestoreManager zijn verplaatst naar het NuGet.VisualStudio-pakket

NuGet.SolutionRestoreManager.Interop wordt niet meer bijgewerkt en de BIJBEHORENDE API's zijn samengevoegd in het NuGet.VisualStudio-pakket. Als u een bestaande Visual Studio-extensie bijwerkt voor gebruik met Visual Studio 2022 (17.0) en u eerder NuGet.SolutionRestoreManager.Interop gebruikte, moet u dat pakket verwijderen en NuGet.VisualStudio upgraden/installeren naar versie 6.0.0. De naamruimten en klassen blijven hetzelfde, dus deze zijn compatibel vanuit een API-perspectief.

Daarnaast gebruikt NuGet.VisualStudio niet langer EmbedInteropTypes, in overeenstemming met de wijzigingen in het beleid van Visual Studio. Daarom heeft uw extensie een referentietijd voor het compileren van NuGet.VisualStudio.dll. Nuget geeft Visual Studio opdracht om bindingsomleidingen te gebruiken, dus uw extensie wordt niet beïnvloed wanneer NuGet wordt geüpdatet naar nieuwere versies, terwijl uw extensie wordt gecompileerd met een oudere versie van onze assembly. Daarom kunt u de assembly's van NuGet uit uw vsix uitsluiten om de downloadgrootte te verkleinen. NuGet-pakketten worden bijgewerkt om dit automatisch te doen in NuGet 6.2 (voor Visual Studio 17.2).

Als u de assembly's van NuGet wilt onderdrukken vanuit uw vsix, voegt u het volgende toe aan uw projectbestand:

<ItemGroup>
  <SuppressFromVsix Include="NuGet.VisualStudio.dll" Visible="false" />
  <SuppressFromVsix Include="NuGet.VisualStudio.Contracts.dll" Visible="false" />
</ItemGroup>

Functies:

  • Hook toevoegen voor het uitsluiten van bepaalde build-uitvoerextensies uit het nuget-pakket - #10690

  • Nieuwe prioriteit implementeren voor xamarin TFM's wanneer u net6.0+ - #10717 gebruikt

  • Mac Catalyst-waarschuwing implementeren wanneer wordt teruggevallen op Xamarin.iOS voor net6.0+ projecten - #10718

  • Ondersteuning voor pakketnaamruimten toevoegen als onderdeel van de configuratie - voeg alleen een leesmogelijkheid toe - #10725

  • Pakketnaamruimten: Houd rekening met het filteren van pakketnaamruimten bij het downloaden van pakketten in PackageReference-herstel - #10732

  • Ondersteuning voor het filteren van naamruimten toevoegen tijdens het herstel van packages.config in nuget.exe en msbuild /t:restore - #10737

  • Voeg een contract toe voor het identificeren van een herstelbron om NuGet te helpen bij betere batchherstelbewerkingen en het schakelen tussen vertakkingen. - #10807

  • Ondersteuning toevoegen voor net6.0-tizen en net6.0-android - #10819

  • Ondersteuning voor het filteren van naamruimten toevoegen aan de packages.config-herstelfunctie in Visual Studio - #10823

  • Ondersteuning toegevoegd voor TfmSpecificDebugSymbolsFile om symbolen te bieden in de interne build - #10913

  • Waarschuwingspictogram weergeven op het tabblad Geïnstalleerd als er kwetsbare pakketten zijn geïnstalleerd - #10982

  • Waarschuwingspictogram weergeven per pakket in lijst met pakketten als er een beveiligingsprobleem is - #10983

  • Details van pakketproblemen weergeven in het deelvenster met pakketdetails van de PMUI - #10985

  • Verouderdheidskoppelingen toevoegen op de pagina Details in de PM UI - #10996

  • [Functie]: Het aantal nieuwe pogingen en het uitstelgedrag configureren voor Nuget-clients - #11027

  • [Functie]: los alle pakketinstallatieregels voor pakketnaamruimten op in packageReference- en PackageDownload-scenario's. - #11035

  • [Functie]: alle pakketinstallatieregels voor pakketnaamruimten werken in projecten met de configuratiestijl van pakketten - #11036

Problemen opgelost in deze release

DCR's:

  • Overweeg om de uitbreidbaarheid te verwijderen waarmee andere pakketbeheerders als compatibel kunnen worden weergegeven - #6623

  • Stoppen met het gebruik van EmbedInteropTypes voor VS-extenbility-pakketten/assembly's van NuGet - #10892

  • Project.nuget.g.targets mogen niet worden voorafgegaan door MSBuildAllProjects in MSBuild 16 of hoger - #10895

  • Verouderde kern-API's verwijderen - #10940

  • NuGet.SolutionRestoreManager.Interop samenvoegen in NuGet.VisualStudio - #10957

  • RuntimeEnvironmentHelper.IsDev14 verwijderen - #11000

  • Newtonsoft.Json bijwerken naar 13.0.1 - #11095

  • [DCR]: naam van de functie packageNamespaces wijzigen in packageSourceMapping - #11205

Bugs:

  • Installeren met de modus voor het opslaan van pakketten 'nuspec' wordt altijd opnieuw geïnstalleerd - #2402

  • <project>Update-Package -reinstall -ProjectName werkt niet voor pull request - #6088

  • "Er is al een item met dezelfde sleutel toegevoegd" - wanneer projectgrafiek projectName == packageRef name (van dezelfde versie) - #6795 heeft

  • [Testfout] Stel voor om de tweede gedupliceerde tekenreeks 'Licentie-acceptatie' te verwijderen in het dialoogvenster 'Licentieacceptatie' - #8162

  • Kan de configuratiesleutel niet verwijderen met behulp van nuget.exe - #8223

  • msbuild /t:Restore en Visual Studio produceren verschillende assets-bestanden wanneer de assemblynaam niet gelijk is aan de projectnaam - #8272

  • PM UI humaniseert het aantal downloads niet wanneer 999.500 <= count <=999.999 - #8800

  • Roslyn Analyzer-suggestie 'installeren met pakketbeheer' opent NuGet op het verkeerde tabblad - #10124

  • StaticGraph Restore moet duidelijk worden aangeroepen wanneer een project niet KnownToBeMSBuildFormat wordt aangeroepen via een oplossingsbestand - #10363

  • Met de opdracht nuget spec wordt een .nuspec-bestand gegenereerd met een iconUrl - #10400

  • Rfc3161TimestampTokenInfo.GetNonce kan een uitzondering afwerpen - #10484

  • Controleren of de opdracht niet is uitgeschakeld in Mono - #10585

  • De methode CreateLockFileTargetLibrary vertraagt de herstelbewerking - #10614

  • PackageArchieveReader overschrijft CopyNupkgAsync niet, zodat pakketextractie mislukt - #10708

  • Informatie over pakketnaamruimten doorgeven aan de opdracht Herstellen - #10736

  • Zorg ervoor dat het filteren van naamruimten wordt gerespecteerd tijdens installatie/updates van het pakket in packages.config binnen PMUI - #10738

  • NuGet.Packaging.Extraction: uitzonderingen bij resources niet gevonden - #10776

  • Kan ingesloten PackageReadmeFile niet gebruiken bij het gebruik van snupkg voor symbolen - #10791

  • Redundante UI-vertraagopties verwijderen bij initialisatie van NuGet-project - #10824

  • Verwijder overbodige ToList-opsommingen in herstelcodepaden - #10835

  • IVsPackageInstallerServices markeren als afgeschaft - #10836

  • NuGet-pakketten die meer dan 1 miljard keer zijn gedownload, geven de verkeerde eenheid weer - #10864

  • Moeilijk om de achtergrondkleur van het nummer aan de rechterkant van de tabbladen 'Updates' en 'Samenvoegen' te zien in het thema Donker - #10896

  • IVsProjectRestoreInfoSource-verbeteringen - #10898

  • packages.lock.json kapot met Sdk-Style C#-project gericht op net5.0-windows - #10901

  • Een standaard implementatie toevoegen voor IVsSolutionRestoreService4 - #10908

  • [Reactiesnelheid] Impliciete RPC verwijderen uit achtergrondthread via overbodige GetServiceAsync-extensies - #10916

  • Het boksen van bool voor hashcode-berekening veroorzaakt overmatige geheugenallocaties - #10917

  • Herhalen van bibliotheekafhankelijkheden veroorzaakt overtoewijzing van Enumerators - #10918

  • Zoeken in compatibiliteitscache wijst Func toe voor elke zoekopdracht - #10919

  • Overbezettingen van WhereListIterator in DependencyWalker.CreateGraphNode - #10920

  • Uitzondering tijdens het herstellen: 'Herstelmetadata mist de vereiste lijst met doelframeworks' - #10924

  • Een reducer van een framework delen over verschillende beheerde codeconventies - #10925

  • NuGet VSIX wordt gegenereerd met onjuiste bindingsomleidingen - #10946

  • Vertragingen in de gebruikersinterface van NuGet Package Manager bij het uitvoeren van init-scripts - #10947

  • Ondersteuningsbron-URI die is doorgegeven aan nuget restore/install en dotnet restore package of andere equivalente opdrachten - #10948

  • Ondersteuning voor het filteren van naamruimten voor de nuget.exe-installatieopdracht - #10961

  • Stoppen met het genereren van onbewerkte eigenschappen voor elk segment - #10969

  • Onverwachte NU1605 van transitieve verwijzing die nooit is geselecteerd (gesnoeid subgraaf) - #10972

  • NuGet.Localization heeft geen pakketpictogram - #10975

  • Vermijd onnodig het wijzigen van het formaat van woordenlijst tijdens het berekenen van projectsluiting - #10976

  • Conflicterende documentatie inzake ISettings.AddOrUpdate - #10980

  • Een pool-bytematrix gebruiken bij het kopiëren van bestanden en het valideren van handtekeningen - #10988

  • Vermijd toewijzingen van Task.WhenAny in dependency walker - #10989

  • Zorg ervoor dat het filteren van de naamruimte wordt gerespecteerd bij het installeren/updaten van pakketten in packages.config PMC - #11001

  • Zorg ervoor dat het filteren van naamruimten wordt gerespecteerd bij de installatie of updates van packages.config via de IVs installer API - #11002

  • [Bug]: PM UI geeft 0 downloads weer wanneer het geselecteerde pakket al is geïnstalleerd - #11012

  • Toewijzingen verminderen in VersionFormatter - #11014

  • Verouderde ongebruikte typen: LibraryDependencyType en gerelateerd - #11015

  • [Bug]: nuget.exe install packages.config voldoet niet aan -PackageSaveMode nuspec - #11018

  • [Bug]: $(IsPackable) is niet aangehaald - #11025

  • Apex-tests maken met meerdere bronopslagplaatsen voor het filteren van de PMUI-pakketnaamruimte - #11026

  • [Bug]: [Toegankelijkheid] Moeilijk te lezen koppelingen in zoekresultaten van PM UI met behulp van licht of donker thema - #11055

  • IVsSolutionRestoreService4 moet IVsSolutionRestoreService3 - #11098 uitbreiden

  • [Bug]: Advieskoppelingen moeten worden uitgelijnd in het detailvenster van PMUI - #11101

  • De tooltip van het waarschuwingspictogram voor kwetsbare en verouderde pakketversies is niet duidelijk - #11103

  • [Responsiviteit] RestoreOperationLogger+StatusBarProgress.Dispose blokkeert een threadpool-thread die wacht op de UI-thread - #11115

  • Tijd sinds laatste herstel-metriek toevoegen - #11124

  • [Bug]: nuget.exe regressie bij het verwerken van recursieve <files> vermeldingen tussen 5.9.1 en 5.10.0 - #11125

  • Await WhenNominated wanneer een project een nominatie in behandeling heeft - #11132

  • Ondersteunt de sourceUri-optie doorgegeven aan dotnet add package - #11140

  • [Bug]: VS PM UI geeft geen JPEG-pictogrammen voor pakketten weer - #11144

  • UIDelay: nuget.packagemanagement.visualstudio.dll!NuGet.PackageManagement.VisualStudio.VsCoreProjectSystemReferenceReader+<GetProjectReferencesAsync>d__ - CPS-projecten - #11162

  • [Bug]: dotnet list package --outdated --interactive maakt referentieprovider ongeldig cache voor elk weergegeven pakket - #11169

  • [Bug]: Pakketnaamruimten voor packages.config scenario's gebruiken alle bronnen als terugvaloptie wanneer er geen overeenkomende naamruimten worden gevonden voor een pakket - #11170

  • MEF-zoekopdrachten op UI-thread voorkomen tijdens initialisatie van NuGet-projecten - #11176

  • [Bug]: Knopinfo op de waarschuwingsindicatorafbeelding op het tabblad Geïnstalleerd werkt niet meer - #11183

  • Alle ServiceLocator-aanroepen die MEF-services ophalen, moeten de UI-thread vermijden. - #11201

  • [Bug]: Telemetriegebeurtenis ontbreekt in Visual Studio - #11206

  • Vermijd dubbele EnvDTEProjectUtility.IsSupportedAsync-aanroepen - #11207

  • Voeg IVsSolutionManager.GetSolutionDirectoryAsync toe: verbeter de prestaties en stop met het blokkeren van de aanroepende thread in asynchrone codepaden. - #11208

  • Naam van typen/variabelen in de product-/testcode wijzigen zodat de nieuwe naam voor de functie voor pakketnaamruimten wordt weergegeven - #11216

  • [Bug]: ArPow-build werkt niet goed in een submap van een niet-gerelateerde Git-opslagplaats - #11227

  • dotnet-lijstpakket --kwetsbaar, --afgeschaft, --verouderd werkt niet voor transitieve positieven - #10767

Lijst met alle problemen die zijn opgelost in deze release - 6.0

Lijst met doorvoeringen in deze release - 6.0.0

Samenvatting: Nieuw in 6.0.1

Alleen Visual Studio is bijgewerkt met deze versie van NuGet.

Problemen opgelost in deze release

  • [Bug]: Kan INuGetProjectService niet ophalen van de servicebroker in Visual Studio 17 - #11367
  • [Bug]: Initialisatie van Package Manager-console kan impasses veroorzaken - #11320

Lijst met doorvoeringen in deze release - 6.0.1

Bijdragen van de community

Bedankt voor alle inzenders die hebben geholpen deze NuGet-release geweldig te maken!

Wie Prs Issues
omajid 3866 Niet-null verwerken in Rfc3161TimestampTokenInfo - #10484
marcin-krystianc 3934 Een cache toevoegen voor LockFileTargetLibrary - #10614
krafs 4151 Returnwaarde verwijderd uit documenten in ISettings.AddOrUpdate - #10980
huangqinjin 4148 Oplossen PackageSaveMode nuspec herinstalleert altijd - #2402
Insomniak47 4190 fix(docs): Koppeling naar gesloten of doodlopende koppeling verwijderen in richtlijnen voor bijdragen - #8987
marcin-krystianc 4194 Zorg ervoor dat de prestatiescripts rekening houden met mislukte herstelbewerkingen - #9968
eriawan 4159 Fixes Surround ($IsPackable) met enkele aanhalingstekens - #11025
huangqinjin 4193 Het installeren van packages.config moet uitvoering geven aan PackageSaveMode - #11018
mfkl 4199 test: gebruik nieuwe DependencyGraphSpec - #11168
omajid 4254 --work-tree gebruiken met Git apply - #11227

Welkom bij feedback

Uw feedback is belangrijk voor ons. Als er problemen zijn met deze release, raadpleegt u onze GitHub-problemen en Visual Studio Developer Community voor bestaande problemen. Voor nieuwe problemen in NuGet meldt u een GitHub-probleem. Voor algemene Problemen met NuGet-problemen kunt u ons dit laten weten via de optie Een probleem melden in uw favoriete IDE onder Help-rapport > een probleem.