Versionshinweise zu NuGet 6.0
Möglichkeiten der NuGet-Verteilung:
NuGet-Version | Verfügbar in der Visual Studio-Version | Verfügbar in .NET SDK(s) |
---|---|---|
6.0.0 | Visual Studio 2022 version 17.0.0 | 6.0.01 |
6.0.1 | Visual Studio 2022 Version 17.0.2 | N/V |
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 | N/V | 6.0.1181 |
6.0.6 | N/V | 6.0.1271 |
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
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.
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.
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 – #10363Der 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 – #11025Erstellen 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 – #11125Warten 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.