Auf Englisch lesen

Freigeben über


Versionshinweise zu NuGet 6.0

Möglichkeiten der NuGet-Verteilung:

1 Visual Studio 2022 mit installierter .NET Core-Workload

Zusammenfassung: Neuigkeiten in 6.0.6

  • [Sicherheit]: Microsoft Security Advisory CVE-2024-0057 | Sicherheitsanfälligkeit in NuGet-Client bezüglich Umgehung der Sicherheitsfunktion – #12653

Zusammenfassung: Neuigkeiten in 6.0.5

  • [Sicherheit]: Microsoft Security Advisory CVE-2023-29337 | Sicherheitsanfälligkeit in NuGet-Client bezüglich Remotecodeausführung – #12653

Hinweis

Es gibt eine Verhaltens-Breaking Change unter Linux. Der Speicherort des temporären Ordners, in dem NuGet temporäre Dateien während der verschiedenen Vorgänge speichert, wurde von /tmp/NuGetScratch zu /tmp/NuGetScratch<username> geändert. z. B. für Benutzer Benutzer1 lautet der temporäre Ordner /tmp/NuGetScratchUser1.

Zusammenfassung: Neuigkeiten in 6.0.3

  • [Sicherheit]: Microsoft Security Advisory CVE-2022-41032 | .NET Elevation Of Privilege Vulnerability (Sicherheitsrisiko durch Rechteerweiterungen in .NET) – #12149

Hinweis

Visual Studio 17.0, MSBuild 17.0 und .NET 6.0 erfordern NuGet.exe 6.0 oder höher.

Zusammenfassung: Neuigkeiten in 6.0.2

  • [Sicherheit]: Microsoft Security Advisory CVE 2022-30184 | .NET Information Disclosure Vulnerability (Verwundbarkeit NET Veröffentlichung von Informationen) – #11883

Zusammenfassung: Neuigkeiten in 6.0.0

🎉 Dies ist die erste Version, die vollständige Dokumenterstellung und Wiederherstellung von NuGet-Paketen für .NET 6.0 bietet 🎉

.NET 6-Support

NuGet 6.0 ist die erste Version, die vollständige Dokumenterstellung und Wiederherstellung von NuGet-Paketen für .NET 6.0 bietet. Sie können jetzt die folgenden Zielframeworks als Ziel festlegen:

  • 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

Wenn Sie mit den .NET 6.0-Zielen heute nicht vertraut sind oder wie es in Zukunft aussehen wird, vergessen Sie nicht, sich die .NET 6.0 TFM-Spezifikation anzusehen.

Quellzuordnung

Anfang dieses Jahres wurden viele Paket-Manager auf Abhängigkeitsverwechslungs-Angriffe aufmerksam, bei denen ein Benutzer dazu gebracht werden sollte, eine schädliche Abhängigkeit anstelle der beabsichtigten Abhängigkeit zu installieren. Um Ihre Software-Lieferkette gegen diese Angriffe zu stärken, hat das NuGet-Team ein neues Feature entwickelt, mit dem Sie Ihre Abhängigkeiten bestimmten Quellen zuordnen können. Im Folgenden finden Sie ein Beispiel dafür, wie Sie die Quellzuordnungsdatei verwenden können, um Ihre Projekte zu schützen.

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

Weitere Informationen zur Quellzuordnungsdatei finden Sie in unserem Blog, der in diesem Jahr veröffentlicht wurde.

Sicherheitsrisiken in Visual Studio

Wenn Sie die NuGet-Paket-Manager in Visual Studio verwenden, werden jetzt Paketrisiken für Ihre Pakete angezeigt, einschließlich Details wie Anzahl und Schweregrad von Sicherheitsrisiken sowie direkte Links, um mehr über die Empfehlungen zu erfahren.

Visual Studio Package Vulnerabilities

Verhalten bei Wiederholung und Backoff

Es gibt jetzt ein NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY-Kennzeichen, um das Verhalten bei Wiederholung und Backoff von NuGet-Clients zu verbessern, z. B. erhöhen sie die maximale Anzahl von Wiederholungen und erhöhen die Verzögerung für eine stabilere Erfahrung, wenn eine schwächere Internetverbindung auftritt.

Standard-Dateierweiterungen ausschließen

Sie können jetzt das MSBuild-Flag <AllowedOutputExtensionsInPackageBuildOutputFolder> verwenden, um die Dateierweiterungen zu bearbeiten, die in der Buildausgabe Ihres Pakets enthalten sind. Dadurch erhalten Sie mehr Kontrolle über die Erweiterungen, die in Ihrem Buildausgabeordner enthalten sind.

Verbesserte veraltete Informationen in Visual Studio

Veraltete Pakete in Visual Studio enthalten jetzt einen Link zum vorgeschlagenen alternativen Paket. Mit diesem Feature können Sie Pakete, die aktiv erhalten werden, schnell durchsuchen und installieren.

Visual Studio Package Deprecations

Hinzufügen einer Paket-Infodatei in Visual Studio

Sie können jetzt ein Paket README.md-Datei direkt in Visual Studio hinzufügen. Eine Infodatei hilft ihnen, wichtige Informationen über Ihr Paket zu vermitteln. Es ist oft der erste Artikel, den ein Besucher beim Besuch Ihres Pakets auf NuGet.org sehen wird. Infodateien enthalten in der Regel Informationen zu:

  • Funktionsweise des Pakets
  • Warum ist das Paket sinnvoll
  • Wie können Benutzer mit dem Paket loslegen
  • Wo Benutzer Hilfe erhalten oder zu Ihrem Paket beitragen können

Weitere Informationen zum Hinzufügen einer Infodatei zu Ihrem NuGet-Paket finden Sie in unserem Blog.

Schnelleres Laden von Lösungen und Wechseln von Verzweigungen in Visual Studio

In Visual Studio 2022 hat NuGet den Vertrag zwischen NuGet-Paketwiederherstellung und allgemeinen Visual Studio-Komponenten neu definiert, um die Leistung für große Lösungen zu verbessern, indem sie nur einmal statt mehrmals zur Wiederherstellung aufgerufen wird. Dadurch wird die Zeit verbessert, bis Hintergrundverarbeitung erheblich abgeschlossen werden.

Installieren Sie Visual Studio 2022 Preview und teilen Sie uns mit, ob Sie beim Laden ihrer großen Lösungen oder beim Wechseln zwischen Zweigniederlassungen eine schnellere Erfahrung feststellen!

Die Visual Studio-APIs von NuGet wurden in das Paket NuGet.VisualStudio verschoben.

NuGet.SolutionRestoreManager.Interop wird nicht mehr aktualisiert, und die APIs wurden mit dem NuGet.VisualStudio-Paket zusammengeführt. Wenn Sie eine vorhandene Visual Studio-Erweiterung für die Arbeit mit Visual Studio 2022 (17.0) aktualisieren und zuvor NuGet.SolutionRestoreManager.Interop verwendet haben, sollten Sie dieses Paket deinstallieren und NuGet.VisualStudio auf Version 6.0.0 installieren/upgraden. Die Namespaces und Klassen sind Standard identisch, sodass sie aus API-Sicht kompatibel sind.

Darüber hinaus wird NuGet.VisualStudio nach der Änderung der Richtlinie von Visual Studio nicht mehr verwendet EmbedInteropTypes. Daher verfügt Ihre Erweiterung über einen Kompilierungszeitverweis auf NuGet.VisualStudio.dll. Nuget weist Visual Studio an, Bindungsumleitungen zu verwenden, sodass Ihre Erweiterung nicht betroffen ist, wenn NuGet-Updates auf neuere Versionen aktualisiert werden und Ihre Erweiterung mit einer älteren Version unserer Assembly kompiliert wird. Aus diesem Grund können Sie die Assemblys von NuGet aus Ihrem Vsix unterdrücken, um die Downloadgröße zu verringern. NuGet-Pakete werden automatisch in NuGet 6.2 (für Visual Studio 17.2) aktualisiert.

Um die Assemblys von NuGet aus Ihrem Vsix zu unterdrücken, fügen Sie der Projektdatei Folgendes hinzu:

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

Funktionen:

  • Fügen Sie einen Haken hinzu, um bestimmte Buildausgabeerweiterungen aus dem Nuget-Paket auszuschließen – #10690

  • Implementieren neuer Rangfolge für xamarin TFMs bei Verwendung von net6.0+ – #10717

  • Implementieren der maccatalyst-Warnung beim „Zurückfallen“ auf xamarin.ios für net6.0+ Projekte - #10718

  • Hinzufügen der Unterstützung von Paketnamespaces als Teil der Konfiguration – nur Lesefunktion hinzufügen – #10725

  • Paketnamespaces: Konto für Paketnamespaces filtert beim Paketdownload in PackageReference Wiederherstellung – #10732

  • Hinzufügen von Namespaces-Filterunterstützung in packages.config Wiederherstellung in nuget.exe und msbuild /t:restore – #10737

  • Fügen Sie einen Vertrag zum Identifizieren einer Wiederherstellungsquelle hinzu, um eine bessere Batchwiederherstellung/Verzweigungsschalter zu erleichtern. - #10807

  • Unterstützung für net6.0-tizen und net6.0-android hinzufügen – #10819

  • Hinzufügen von Namespaces-Filterunterstützung für packages.config Wiederherstellung in Visual Studio – #10823

  • Unterstützung für TfmSpecificDebugSymbolsFile hinzufügen, um Symbole im inneren Build bereitzustellen – #10913

  • Warnungssymbol auf der Registerkarte Installiert anzeigen, wenn anfällige Pakete installiert sind – #10982

  • Warnsymbol nach Paket in der Liste der Pakete anzeigen, wenn eine Verwundbarkeit vorliegt – #10983

  • Anzeigen von Paketrisikodetails im Paketdetailsbereich des PMUI – #10985

  • Hinzufügen von Veralteten Links auf der Detailseite in der PM-Benutzeroberfläche – #10996

  • [Feature]: Konfigurieren des Wiederholungs- und Backoffverhaltens für Nuget-Clients – #11027

  • [Feature]: Adressiert alle Paketinstallationsregeln für Paketnamespaces in PackageReference- und PackageDownload-Szenarien. - #11035

  • [Feature]: Adressieren aller Paketinstallationsregeln für Paketnamespaces funktionieren in Paketkonfigurations-Formatprojekten – #11036

In diesem Release behobene Probleme

DCRs:

  • Erwägen Sie, die Erweiterbarkeit zu entfernen, mit der andere Paket-Manager als kompatibel angezeigt werden können – #6623

  • Beenden der Verwendung von EmbedInteropTypes für die VS-Erweiterbarkeitspakete/Assemblys von NuGet – #10892

  • Project.nuget.g.targets sollte MSBuildAllProjects in MSBuild 16 oder höher nicht vorangestellt werden – #10895

  • Entfernen veralteter Kern-APIs – #10940

  • Zusammenführen von NuGet.SolutionRestoreManager.Interop in NuGet.VisualStudio – #10957

  • Entfernen RuntimeEnvironmentHelper.IsDev14 – #11000

  • Aktualisieren von Newtonsoft.Json auf 13.0.1 – #11095

  • [DCR]: Feature packageNamespaces in packageSourceMapping umbenennen – #11205

Bugs:

  • Die Installation mit dem Paketspeichermodus „nuspec“ wird immer neu installiert – #2402

  • Update-Package -Neuinstallation -ProjectName <project> funktioniert nicht für PR – #6088

  • „Ein Element mit demselben Schlüssel wurde bereits hinzugefügt“ – wenn die Projektgrafik projectName == packageRef-Name (derselben Version) hat – #6795

  • [Testfehler] Vorschlagen, die zweite duplizierte Zeichenkette „Lizenzakzeptanz“ im Dialogfeld „Lizenzakzeptanz“ zu entfernen – #8162

  • Config-Schlüssel kann nicht mithilfe von nuget.exe entfernt werden – #8223

  • msbuild /t:Restore und Visual Studio erzeugen unterschiedliche Ressourcendateien, wenn Assemblyname != Projektname – #8272

  • Die PM-Benutzeroberfläche humanisiert die Downloadanzahl nicht, wenn 999.500 <= Anzahl <=999.999 – #8800

  • Roslyn Analyzer Vorschlag „Installieren mit Paket-Manager“ öffnet NuGet auf falsche Registerkarte – #10124

  • StaticGraph Wiederherstellung sollte deutlich herausgerufen werden, wenn ein Projekt nicht KnownToBeMSBuildFormat über eine Lösungsdatei aufgerufen wird – #10363

  • Der Befehl „nuget spec“ generiert eine .nuspec-Datei mit einem iconUrl – #10400

  • Rfc3161TimestampTokenInfo.GetNonce kann ausgelöst werden – #10484

  • Der Befehl Überprüfen ist in Mono nicht deaktiviert – #10585

  • Die CreateLockFileTargetLibrary-Methode verlangsamt den Wiederherstellungsvorgang – #10614

  • PackageArchieveReader überschreibt CopyNupkgAsync nicht, sodass die Paketextraktion fehlschlägt – #10708

  • Verteilen von Paketnamespaces-Informationen an den Wiederherstellungsbefehl – #10736

  • Stellen Sie sicher, dass die Namespacefilterung in packages.config package installation/updates in PMUI berücksichtigt wird – #10738

  • NuGet.Packaging.Extraction: Ausnahmen von Ressourcen nicht gefunden – #10776

  • Einbettungspaket ReadmeFile kann nicht verwendet werden, wenn snupkg für Symbole verwendet wird – #10791

  • Entfernen redundanter Benutzeroberfläche-Verzögerungsschalter in NuGet Projekt Initialisierung – #10824

  • Entfernen sie unnötige ToList-Aufzählungen in Wiederherstellungs-Codepfaden – #10835

  • IVsPackageInstallerServices als veraltet markieren – #10836

  • NuGet-Pakete, die mehr als 1 Milliarden Mal heruntergeladen wurden, zeigen die falsche Einheit – #10864

  • Schwer zu sehen, die Hintergrundfarbe der Zahl auf der rechten Seite der Registerkarten „Updates“ und „Konsolidieren“ im dunklen Design – #10896

  • Verbesserungen bei IVsProjectRestoreInfoSource – #10898

  • packages.lock.json ist mit Sdk-Style C#-Projekt für net5.0-Windows beschädigt – #10901

  • Hinzufügen einer Standardimplementierung für IVsSolutionRestoreService4 – #10908

  • [Reaktionsfähigkeit] Entfernen impliziter RPC aus dem Hintergrundthread über nicht benötigte GetServiceAsync-Erweiterungen – #10916

  • Das Boxen von Strukturen zum Berechnen von Hashcode verursacht übermäßige Zuordnungen – #10917

  • Das Iterieren über Bibliotheksabhängigkeiten verursacht eine Überzuweisung von Enumeratoren – #10918

  • Die Kompatibilitätscachesuche weist Func für jeden Nachschlagevorgang zu – #10919

  • Überlastungen von WhereListIterator in DependencyWalker.CreateGraphNode – #10920

  • Ausnahme beim Wiederherstellen: „Zum Wiederherstellen von Metadaten fehlt die Liste der erforderlichen Zielframeworks“ – #10924

  • Teilen eines Frameworks für übergreifende Konventionen mit verwaltetem Code – #10925

  • NuGet VSIX wird mit falschen Bindungsumleitungen generiert – #10946

  • NuGet Paket-Manager Benutzeroberfläche-Verzögerungen beim Ausführen von Init-Skripts – #10947

  • Unterstützt sourceUri, der an nuget wiederherstellen/installieren und dotnet restore-Paket oder andere gleichgestellte Befehle übergeben wurde – #10948

  • Namespaces-Filterunterstützung für den Befehl nuget.exe install – #10961

  • Beenden des Generierens von Roheigenschaften für jedes Segment – #10969

  • Unerwartetes NU1605 aus transitivem Bezug, der nie ausgewählt wurde (gelöschter Teilgraph) – #10972

  • NuGet.Localization hat kein Paketsymbol – #10975

  • Vermeiden Sie unnötiges Ändern der Größe des Verzeichnisses beim Berechnen des Projektabschlusses – #10976

  • Widersprüchliche Dokumentation zu ISettings.AddOrUpdate – #10980

  • Verwenden eines gepoolten Bytearrays beim Kopieren von Dateien und Überprüfen von Signaturen – #10988

  • Vermeiden von Task.WhenAny-Zuordnungen in Abhängigkeitsläufer – #10989

  • Stellen Sie sicher, dass die Namespacefilterung in packages.config Paketinstallation/-updates in PMC berücksichtigt wird – #11001

  • Stellen Sie sicher, dass die Namespacefilterung in packages.config Paketinstallation/-updates in IVs Installationsprogramm-API berücksichtigt wird – #11002

  • [Bug]: Die PM-Benutzeroberfläche zeigt die Downloadanzahl 0 an, wenn das ausgewählte Paket bereits installiert ist – #11012

  • Reduzieren von Zuordnungen in VersionFormatter – #11014

  • Veraltete nicht verwendete Typen: LibraryDependencyType und verwandte – #11015

  • [Bug]: nuget.exe install packages.config berücksichtigt nicht -PackageSaveMode nuspec - #11018

  • [Fehler]: $(IsPackable) ist nicht zitiert – #11025

  • Erstellen von Apex-Tests mit Repositorys mit mehreren Quellen für die PMUI-Paketnamespacefilterung – #11026

  • [Bug]: [Bedienungshilfen] Schwer zu lesende Links in PM-Benutzeroberfläche-Suchergebnissen mit hellem oder dunklem Design – #11055

  • IVsSolutionRestoreService4 sollte IVsSolutionRestoreService3 erweitern – #11098

  • [Bug]: Empfehlungslinks sollten im Detailbereich von PMUI ausgerichtet werden – #11101

  • QuickInfo des Warnsymbols für die installierten anfälligen/veralteten Paketversionen ist nicht klar – #11103

  • [Reaktionsfähigkeit] RestoreOperationLogger+StatusBarProgress.Dispose blockiert einen Threadpoolthread, der auf einen UI thread wartet – #11115

  • Zeit seit der letzten Wiederherstellungsmetrik hinzufügen – #11124

  • [Bug]: nuget.exe Regression bei der Behandlung rekursiver <files> Einträge zwischen 5.9.1 und 5.10.0 – #11125

  • Warten Sie wenn WhenNominated ein Projekt mit ausstehender Nominierung hat – #11132

  • Unterstützt sourceUri Option weitergegeben an dotnet Paket hinzufügen – #11140

  • [Bug]: VS PM Benutzeroberfläche zeigt keine JPEG-Symbole für Pakete an – #11144

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

  • [Bug]: dotnet list package --outdated --interactive Macht Anmeldeinformationsanbieter für jedes aufgelistete Paket ungültig – #11169

  • [Bug]: Paketnamespaces für packages.config-Szenarien verwenden alle Quellen als Fallbackoption, wenn keine übereinstimmenden Namespaces für ein Paket gefunden werden – #11170

  • Vermeiden von MEF-Nachschlagevorgängen im UI-Thread während der Initialisierung von NuGet-Projekten – #11176

  • [Bug]: QuickInfo auf dem Warnungsindikatorbild auf der Registerkarte Installiert funktioniert nicht mehr – #11183

  • Alle ServiceLocator-Aufrufe, die MEF-Dienste abrufen, sollten den UI-Thread vermeiden. - #11201

  • [Bug]: Telemetrieereignis fehlt in Visual Studio – #11206

  • Vermeiden Sie doppelte EnvDTEProjectUtility.IsSupportedAsync-Aufrufe – #11207

  • Fügen Sie IVsSolutionManager.GetSolutionDirectoryAsync hinzu – verbessern Sie die Leistung und beenden Sie das Blockieren des aufrufenden Threads in asynchronen Codepfaden. - #11208

  • Benennen Sie Typen/Variablen im Produkt-/Testcode um, um den neuen Namen für das Paketnamespaces-Feature widerzuspiegeln – #11216

  • [Bug]: Der ArPow-Build funktioniert nicht gut, wenn sich ein Unterverzeichnis eines nicht verknüpften Git-Repositorys befindet – #11227

  • Dotnet-Listenpaket --anfällig, --veraltet, --veraltet funktioniert nicht für transitive Positive – #10767

Liste aller in dieser Version behobenen Fehler – 6.0

Liste der Commits in dieser Version – 6.0.0

Zusammenfassung: Neuigkeiten in 6.0.1

Nur Visual Studio wurde mit dieser Version von NuGet aktualisiert.

In diesem Release behobene Probleme

  • [Bug]: INuGetProjectService kann nicht vom Service Broker in Visual Studio 17 abgerufen werden – #11367
  • [Bug]: Paket-Manager Konsoleninitialisierung kann Deadlocks verursachen – #11320

Liste der Commits in dieser Version – 6.0.1

Beiträge aus der Community

Vielen Dank an alle Mitwirkende, die geholfen haben, diese NuGet-Version großartig zu machen!

Wer PRs Probleme
omajid 3866 Handle nonce ist Null in Rfc3161TimestampTokenInfo – #10484
marcin-krystianc 3934 Hinzufügen einer Zwischenspeicherung für LockFileTargetLibrary – #10614
krafs 4151 Rückgabewert aus Dokumenten in ISettings.AddOrUpdate – #10980
huangqinjin 4148 Beheben von PackageSaveMode nuspec immer neu installieren – #2402
Insomniak47 4190 fix(docs): Link zu geschlossenem/aussichtslosem Link in den Beitragsrichtlinien entfernen – #8987
marcin-krystianc 4194 Machen Sie die Leistungsskripts für Fehler des Wiederherstellungsvorgangs verantwortlich – #9968
eriawan 4159 Behebt Surround ($IsPackable) mit einfachen Anführungszeichen – #11025
huangqinjin 4193 Installieren von packages.config sollte PackageSaveMode beachten – #11018
mfkl 4199 Test: Neue DependencyGraphSpec verwenden – #11168
omajid 4254 --Arbeitsbaum durch die Anwendung von Git nutzen – #11227

Feedback willkommen

Ihr Feedback ist uns sehr wichtig. Wenn Probleme mit dieser Version auftreten, überprüfen Sie unsere GitHub-Probleme und visual Studio-Entwicklercommunity auf vorhandene Probleme. Für neue Probleme innerhalb von NuGet melden Sie bitte ein GitHub-Problem. Für allgemeine NuGet-Probleme teilen Sie uns dies über die Option Problem melden in Ihrer bevorzugten IDE unter Hilfe > Problem melden mit.