Note sulla versione di NuGet 6.0
Veicoli per la distribuzione di NuGet:
Versione di NuGet | Disponibile nella versione di Visual Studio | Disponibile in .NET SDK |
---|---|---|
6.0.0 | Visual Studio 2022 versione 17.0.0 | 6.0.01 |
6.0.1 | Visual Studio 2022 versione 17.0.2 | N/D |
6.0.2 | Visual Studio 2022 versione 17.0.11 | 6.0.3011 |
6.0.3 | Visual Studio 2022 versione 17.0 | 6.0.1101 |
6.0.5 | N/D | 6.0.1181 |
6.0.6 | N/D | 6.0.1271 |
1 Installato con visual Studio 2022 with.NET carico di lavoro Core
Riepilogo: Novità nella versione 6.0.6
- [Sicurezza]: Avviso di sicurezza Microsoft CVE-2024-0057 | Vulnerabilità di bypass della funzionalità di sicurezza client NuGet - #12653
Riepilogo: Novità nella versione 6.0.5
- [Sicurezza]: Avviso di sicurezza Microsoft CVE-2023-29337 | Vulnerabilità di esecuzione del codice remoto del client NuGet - #12653
Nota
In Linux è presente una modifica che causa un'interruzione del comportamento. Il percorso della cartella temporanea, in cui NuGet archivia i file temporanei durante le varie operazioni, è passato da /tmp/NuGetScratch
a /tmp/NuGetScratch<username>
. Ad esempio, per l'utente User1, la cartella temporanea sarà /tmp/NuGetScratchUser1
.
Riepilogo: Novità nella versione 6.0.3
- [Sicurezza]: Avviso di sicurezza Microsoft CVE-2022-41032 | Vulnerabilità di elevazione dei privilegi .NET - #12149
Nota
Visual Studio 17.0, MSBuild 17.0 e .NET 6.0 richiedono NuGet.exe 6.0 o versione successiva.
Riepilogo: Novità nella versione 6.0.2
- [Sicurezza]: Avviso di sicurezza Microsoft CVE 2022-30184 | Vulnerabilità di divulgazione di informazioni .NET - #11883
Riepilogo: Novità nella versione 6.0.0
🎉 Questa è la prima versione per offrire la creazione completa e il ripristino del supporto per i pacchetti NuGet destinati a .NET 6.0 🎉
Supporto di .NET 6
NuGet 6.0 è la prima versione per offrire la creazione completa e il ripristino del supporto per i pacchetti NuGet destinati a .NET 6.0. È ora possibile specificare come destinazione i framework di destinazione seguenti:
- net6.0
- net6.0-windows
- net6.0-android
- net6.0-ios
- net6.0-macos
- net6.0-maccatalyst
- net6.0-tvos
- net6.0-tizen
Se non si ha familiarità con le destinazioni .NET 6.0 di oggi o che aspetto avrà in futuro, non dimenticare di consultare la specifica TFM di .NET 6.0.
Mapping origine
All'inizio di quest'anno, molti gestori di pacchetti sono diventati consapevoli degli attacchi di confusione delle dipendenze in cui un utente deve essere ingannato nell'installare una dipendenza dannosa anziché quella che intendeva. Per rafforzare la supply chain del software contro questi attacchi, il team NuGet ha sviluppato una nuova funzionalità che consente di eseguire il mapping delle dipendenze a origini specifiche. Di seguito è riportato un esempio di come usare il mapping di origine per proteggere i progetti.
<!-- 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>
Per altre informazioni sul mapping di origine, vedere il blog rilasciato all'inizio di quest'anno.
Vulnerabilità del pacchetto in Visual Studio
Quando si usa il Gestione pacchetti NuGet in Visual Studio, verranno ora visualizzate vulnerabilità del pacchetto per i pacchetti, inclusi dettagli come il numero e la gravità delle vulnerabilità, nonché collegamenti diretti per altre informazioni sugli avvisi.
Comportamento di ripetizione e backoff
È ora disponibile un NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY
flag per migliorare il comportamento di ripetizione e backoff dei client NuGet, ad esempio l'aumento della quantità massima di tentativi e l'aumento del ritardo per un'esperienza più resiliente quando si verifica una connessione Internet più debole.
Escludere le estensioni di file predefinite
È ora possibile usare il flag <AllowedOutputExtensionsInPackageBuildOutputFolder>
MSBuild per modificare le estensioni di file incluse nell'output di compilazione del pacchetto. In questo modo è possibile controllare maggiormente le estensioni incluse nella cartella di output di compilazione.
Informazioni di deprecazione migliorate in Visual Studio
I pacchetti deprecati in Visual Studio ora includono un collegamento al pacchetto alternativo suggerito da usare. È possibile usare questa funzionalità per esplorare e installare rapidamente i pacchetti gestiti attivamente.
Aggiungere un file LEGGIMI pacchetto in Visual Studio
È ora possibile aggiungere un file di README.md pacchetto direttamente in Visual Studio. Un file README consente di comunicare informazioni importanti sul pacchetto. È spesso il primo elemento che un visitatore vedrà quando visita il pacchetto in NuGet.org. I file README in genere includono informazioni su:
- Operazioni del pacchetto
- Perché il pacchetto è utile
- Come gli utenti possono iniziare a usare il pacchetto
- Dove gli utenti possono ottenere assistenza o contribuire al pacchetto
Per altre informazioni sull'aggiunta di un file README al pacchetto NuGet, vedere il blog.
Caricamento e cambio di ramo più veloci della soluzione in Visual Studio
In Visual Studio 2022 NuGet ha ridefinito il contratto tra il ripristino dei pacchetti NuGet e i componenti comuni di Visual Studio per migliorare le prestazioni per soluzioni di grandi dimensioni chiamando il ripristino una sola volta anziché più volte. Questo migliora il tempo necessario per il completamento significativo dei processi in background.
Installare Visual Studio 2022 Preview e segnalare se si nota un'esperienza più veloce durante il caricamento di soluzioni di grandi dimensioni o il passaggio da un ramo all'altro.
Le API di Visual Studio SolutionRestoreManager di NuGet sono state spostate nel pacchetto NuGet.VisualStudio
NuGet.SolutionRestoreManager.Interop non viene più aggiornato e le RELATIVE API sono state unite nel pacchetto NuGet.VisualStudio. Se si aggiorna un'estensione di Visual Studio esistente per funzionare con Visual Studio 2022 (17.0) e si usava in precedenza NuGet.SolutionRestoreManager.Interop, è necessario disinstallare il pacchetto e aggiornare/installare NuGet.VisualStudio alla versione 6.0.0. Gli spazi dei nomi e le classi rimangono invariati, quindi è compatibile dal punto di vista dell'API.
Inoltre, dopo la modifica dei criteri di Visual Studio, NuGet.VisualStudio non usa EmbedInteropTypes
più .
Di conseguenza, l'estensione avrà un riferimento in fase di compilazione per NuGet.VisualStudio.dll.
Nuget indica a Visual Studio di usare i reindirizzamenti di binding, quindi l'estensione non verrà interessata quando NuGet viene aggiornato alle versioni più recenti e l'estensione viene compilata in base a una versione precedente dell'assembly.
Per questo motivo, è possibile eliminare gli assembly di NuGet dal vsix per ridurre le dimensioni del download.
I pacchetti NuGet verranno aggiornati per eseguire questa operazione automaticamente in NuGet 6.2 (per Visual Studio 17.2).
Per eliminare gli assembly di NuGet dal vsix, aggiungere quanto segue al file di progetto:
<ItemGroup>
<SuppressFromVsix Include="NuGet.VisualStudio.dll" Visible="false" />
<SuppressFromVsix Include="NuGet.VisualStudio.Contracts.dll" Visible="false" />
</ItemGroup>
Funzionalità:
Aggiungere hook per escludere determinate estensioni di output di compilazione dal pacchetto nuget - #10690
Implementare la nuova precedenza per i TFM xamarin quando si usa net6.0+ - #10717
Implementare l'avviso maccatalyst quando si esegue il "fallback" a xamarin.ios per progetti net6.0+ - #10718
Aggiungere il supporto degli spazi dei nomi dei pacchetti come parte della configurazione: aggiungere solo una funzionalità di lettura - #10725
Spazi dei nomi dei pacchetti: account per i filtri degli spazi dei nomi dei pacchetti nel download del pacchetto in PackageReference restore - #10732
Aggiunta del supporto dei filtri degli spazi dei nomi nel ripristino packages.config in nuget.exe e msbuild /t:restore - #10737
Aggiungere un contratto per l'identificazione di un'origine di ripristino per consentire a NuGet di migliorare le opzioni di ripristino batch/ramo. - #10807
Aggiunta del supporto per net6.0-tizen e net6.0-android - #10819
Aggiunta del supporto del filtro degli spazi dei nomi per il ripristino packages.config in Visual Studio - #10823
Aggiungere il supporto per TfmSpecificDebugSymbolsFile per fornire simboli nella build interna - #10913
Mostra l'icona di avviso nella scheda Installato se sono installati pacchetti vulnerabili - #10982
Mostra l'icona di avviso per pacchetto nell'elenco dei pacchetti se è presente una vulnerabilità - #10983
Visualizzare i dettagli della vulnerabilità del pacchetto nel riquadro dei dettagli del pacchetto di PMUI - #10985
Aggiungere collegamenti deprecati nella pagina Dettagli nell'interfaccia utente pm - #10996
[Funzionalità]: Rendere configurabile il numero di tentativi e il comportamento di backoff per i client NuGet - #11027
[Funzionalità]: risolvere tutte le regole di installazione dei pacchetti per gli spazi dei nomi dei pacchetti funzionano negli scenari PackageReference e PackageDownload. - #11035
[Funzionalità]: Risolvere tutte le regole di installazione dei pacchetti per gli spazi dei nomi dei pacchetti funzionano nei progetti di stile Di configurazione pacchetti - #11036
Problemi corretti in questa versione
controller di dominio:
Provare a rimuovere l'estendibilità che consente la visualizzazione di altri gestori pacchetti come compatibili - #6623
Interrompere l'uso di EmbedInteropTypes per i pacchetti/assembly di extenbility vs di NuGet - #10892
Project.nuget.g.targets non deve anteporre a MSBuildAllProjects in MSBuild 16 o versione successiva - #10895
Rimuovere le API di base obsolete - #10940
Unire NuGet.SolutionRestoreManager.Interop in NuGet.VisualStudio - #10957
Remove RuntimeEnvironmentHelper.IsDev14 - #11000
Aggiornare Newtonsoft.Json alla versione 13.0.1 - #11095
[DCR]: Rinominare la funzionalità packageNamespaces in packageSourceMapping - #11205
Bug:
L'installazione con la modalità di salvataggio del pacchetto "nuspec" viene sempre reinstalla - #2402
Update-Package -reinstall -ProjectName
<project>
non funziona per la richiesta pull - #6088"Un elemento con la stessa chiave è già stato aggiunto" - quando project graph ha projectName == packageRef name (della stessa versione) - #6795
[Errore di test] Suggerire di rimuovere la seconda stringa duplicata "Accettazione della licenza" nella finestra di dialogo "Accettazione della licenza" - #8162
Non è possibile rimuovere la chiave di configurazione usando nuget.exe - #8223
msbuild /t:Restore e Visual Studio producono file di asset diversi quando il nome dell'assembly != nome del progetto - #8272
L'interfaccia utente pm non umanizza il conteggio dei download quando 999.500 <= conteggio <=999.999 - #8800
Il suggerimento di Roslyn Analyzer "Install with package manager" apre NuGet nella scheda errata - #10124
StaticGraph Restore deve chiaramente chiamare quando un progetto non
KnownToBeMSBuildFormat
è quando viene chiamato tramite un file di soluzione - #10363Il comando "nuget spec" genera un file con estensione nuspec con un'iconaUrl - #10400
Rfc3161TimestampTokenInfo.GetNonce può generare - #10484
Verificare che il comando non sia disabilitato in Mono - #10585
Il metodo CreateLockFileTargetLibrary rallenta l'operazione di ripristino - #10614
PackageArchieveReader non esegue l'override di CopyNupkgAsync in modo che l'estrazione dei pacchetti non riesca - #10708
Propagare le informazioni sugli spazi dei nomi dei pacchetti al comando restore - #10736
Verificare che il filtro degli spazi dei nomi sia rispettato in packages.config package installation/updates in PMUI - #10738
NuGet.Packaging.Extraction: eccezioni dalle risorse non trovate - #10776
Impossibile usare PackageReadmeFile incorporato quando si usa snupkg per i simboli - #10791
Rimuovere le opzioni di ritardo dell'interfaccia utente ridondanti nell'inizializzazione del progetto NuGet - #10824
Rimuovere le enumerazioni ToList non necessarie nei percorsi di codice di ripristino - #10835
Contrassegnare IVsPackageInstallerServices come deprecato - #10836
I pacchetti NuGet scaricati più di 1 miliardo di volte mostrano l'unità errata - #10864
Difficile visualizzare il colore di sfondo del numero a destra delle schede "Aggiornamenti" e "Consolida" nel tema Scuro - #10896
Miglioramenti di IVsProjectRestoreInfoSource - #10898
packages.lock.json interrotto con il progetto C# in stile SDK destinato a net5.0-windows - #10901
Aggiungere un'implementazione predefinita per IVsSolutionRestoreService4 - #10908
[Velocità di risposta] Rimuovere rpc implicite dal thread in background tramite estensioni GetServiceAsync non necessario - #10916
Il boxing di bool consiste nel calcolare il codice hash che causa allocazioni eccessive - #10917
L'iterazione delle dipendenze della libreria causa l'over-allocation degli enumeratori - #10918
La ricerca nella cache di compatibilità alloca Func per ogni ricerca - #10919
Sovrasegnazioni di WhereListIterator in DependencyWalker.CreateGraphNode - #10920
Eccezione durante il ripristino: "Ripristinare i metadati non visualizza l'elenco dei framework di destinazione necessari" - #10924
Condividere un riduttore del framework tra convenzioni di codice gestito - #10925
NuGet VSIX viene generato con reindirizzamenti di binding non corretti - #10946
NuGet Gestione pacchetti i ritardi dell'interfaccia utente durante l'esecuzione di script init - #10947
SourceUri di supporto passato al pacchetto nuget restore/install e dotnet restore o ad altri comandi equivalenti - #10948
Supporto dei filtri degli spazi dei nomi per il comando di installazione nuget.exe - #10961
Interrompere la generazione di proprietà non elaborate per ogni segmento - #10969
NU1605 imprevisto dal riferimento transitivo che non è mai stato selezionato (sottografo estratto) - #10972
NuGet.Localization non ha un'icona del pacchetto - #10975
Evitare di ridimensionare inutilmente il dizionario durante il calcolo della chiusura del progetto - #10976
Documentazione in conflitto su I Impostazioni. AddOrUpdate - #10980
Usare una matrice di byte in pool durante la copia di file e la convalida delle firme - #10988
Evitare allocazioni Task.WhenAny in dependency walker - #10989
Verificare che il filtro degli spazi dei nomi sia rispettato in packages.config package installation/updates PMC - #11001
Verificare che il filtro degli spazi dei nomi sia rispettato nell'API del programma di installazione del pacchetto packages.config - #11002
[Bug]: L'interfaccia utente pm mostra 0 numero di download quando il pacchetto selezionato è già installato - #11012
Ridurre le allocazioni in VersionFormatter - #11014
Tipi inutilizzati obsoleti: LibraryDependencyType e correlati - #11015
[Bug]:
nuget.exe install packages.config
non rispetta-PackageSaveMode nuspec
- #11018[Bug]:
$(IsPackable)
non è racchiuso tra virgolette - #11025Creare test Apex con repository multi source per il filtro dello spazio dei nomi del pacchetto PMUI - #11026
[Bug]: [Accessibilità] Difficile leggere i collegamenti nei risultati della ricerca dell'interfaccia utente pm usando tema chiaro o scuro - #11055
IVsSolutionRestoreService4 deve estendere IVsSolutionRestoreService3 - #11098
[Bug]: I collegamenti consultivi devono essere allineati nel riquadro dei dettagli di PMUI - #11101
La descrizione comando dell'icona di avviso delle versioni del pacchetto vulnerabile/deprecazione installata non è chiara - #11103
[Velocità di risposta] RestoreOperationLogger+StatusBarProgress.Dispose bloccando un thread del pool di thread in attesa del thread dell'interfaccia utente - #11115
Aggiungere tempo dall'ultima metrica di ripristino - #11124
[Bug]: nuget.exe regressione nella gestione delle voci ricorsive
<files>
comprese tra 5.9.1 e 5.10.0 - #11125Await WhenNominated quando un progetto ha una candidatura in sospeso - #11132
Opzione sourceUri di supporto passata al pacchetto dotnet add - #11140
[Bug]: L'interfaccia utente di Visual Studio PM non visualizza icone JPEG per i pacchetti - #11144
UIDelay:
nuget.packagemanagement.visualstudio.dll!NuGet.PackageManagement.VisualStudio.VsCoreProjectSystemReferenceReader+<GetProjectReferencesAsync>d__
- Progetti CPS - #11162[Bug]:
dotnet list package --outdated --interactive
rende il provider di credenziali invalidare la cache per ogni pacchetto elencato - #11169[Bug]: gli spazi dei nomi dei pacchetti per gli scenari packages.config usano tutte le origini come opzione di fallback quando non vengono trovati spazi dei nomi corrispondenti per un pacchetto - #11170
Evitare ricerche MEF nel thread dell'interfaccia utente durante l'inizializzazione dei progetti NuGet - #11176
[Bug]: Descrizione comando nell'immagine dell'indicatore di avviso nella scheda Installato non funziona più - #11183
Tutte le chiamate ServiceLocator che recuperano i servizi MEF devono evitare il thread dell'interfaccia utente. - #11201
[Bug]: Evento di telemetria mancante in Visual Studio - #11206
Evitare chiamate duplicate EnvDTEProjectUtility.IsSupportedAsync - #11207
Aggiungere IVsSolutionManager.GetSolutionDirectoryAsync: migliorare le prestazioni e arrestare il blocco del thread chiamante in percorsi di codice asincroni. - #11208
Rinominare tipi/variabili nel codice product/test per riflettere il nuovo nome per la funzionalità spazi dei nomi del pacchetto - #11216
[Bug]: La compilazione ArPow non funziona correttamente quando in una sottodirectory di un repository Git non correlato - #11227
dotnet list package --vulnerable, --deprecated, --obsoleted non funziona per positivi transitive-only - #10767
Elenco di tutti i problemi risolti in questa versione - 6.0
Elenco dei commit in questa versione - 6.0.0
Riepilogo: Novità nella versione 6.0.1
Solo Visual Studio è stato aggiornato con questa versione di NuGet.
Problemi corretti in questa versione
- [Bug]: Impossibile ottenere INuGetProjectService dal Service Broker in Visual Studio 17 - #11367
- [Bug]: Gestione pacchetti'inizializzazione della console potrebbe causare deadlock - #11320
Elenco dei commit in questa versione - 6.0.1
Contributi della community
Grazie a tutti i collaboratori che hanno contribuito a rendere incredibile questa versione di NuGet.
Chi | Prs | Problemi |
---|---|---|
omajid | 3866 | Handle nonce being null in Rfc3161TimestampTokenInfo - #10484 |
marcin-krystianc | 3934 | Aggiunta di una cache per LockFileTargetLibrary - #10614 |
krafs | 4151 | Rimozione del valore restituito dalla documentazione in I Impostazioni. AddOrUpdate - #10980 |
huangqinjin | 4148 | Correzione di PackageSaveMode nuspec reinstalla sempre - #2402 |
Insonniak47 | 4190 | fix(docs): Rimuovere il collegamento a un collegamento chiuso/dead-end in Linee guida per i contributi - #8987 |
marcin-krystianc | 4194 | Creare l'account degli script di prestazioni per gli errori dell'operazione di ripristino - #9968 |
eriawan | 4159 | Correzione di Racchiudi ($IsPackable) con virgolette singole - #11025 |
huangqinjin | 4193 | L'installazione di packages.config deve rispettare PackageSaveMode - #11018 |
mfkl | 4199 | test: usare il nuovo DependencyGraphSpec - #11168 |
omajid | 4254 | Usare --work-tree con git apply - #11227 |
Commenti e suggerimenti
I commenti degli utenti sono importanti. In caso di problemi con questa versione, controllare i problemi di GitHub e visual Studio Developer Community per individuare i problemi esistenti. Per i nuovi problemi all'interno di NuGet, segnalare un problema di GitHub. Per problemi generali relativi all'esperienza nuGet, segnalarlo tramite l'opzione Segnala un problema nell'IDE preferito in Guida > segnala un problema.