Zpráva k vydání verze NuGet 6.0
Distribuční vozidla NuGet:
Verze NuGetu | K dispozici ve verzi sady Visual Studio | Dostupné v sadě .NET SDK |
---|---|---|
6.0.0 | Visual Studio 2022 verze 17.0.0 | 6.0.01 |
6.0.1 | Visual Studio 2022 verze 17.0.2 | – |
6.0.2 | Visual Studio 2022 verze 17.0.11 | 6.0.3011 |
6.0.3 | Visual Studio 2022 verze 17.0 | 6.0.1101 |
6.0.5 | – | 6.0.1181 |
6.0.6 | – | 6.0.1271 |
1 Nainstalované s úlohou Visual Studio 2022 with.NET Core
Shrnutí: Novinky ve verzi 6.0.6
- [Zabezpečení]: Microsoft Security Advisory CVE-2024-0057 | Ohrožení zabezpečení funkce zabezpečení klienta NuGet – #12653
Shrnutí: Novinky ve verzi 6.0.5
- [Zabezpečení]: Microsoft Security Advisory CVE-2023-29337 | Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu klienta NuGet – #12653
Poznámka:
V Linuxu dochází k zásadní změně chování. Umístění dočasné složky, kde NuGet ukládá dočasné soubory během různých operací, se změnilo z /tmp/NuGetScratch
/tmp/NuGetScratch<username>
. Například pro uživatele User1 bude /tmp/NuGetScratchUser1
dočasná složka .
Shrnutí: Novinky ve verzi 6.0.3
- [Zabezpečení]: Informační zpravodaj zabezpečení společnosti Microsoft CVE-2022-41032 | Ohrožení zabezpečení z důvodu zvýšení oprávnění v .NET – #12149
Poznámka:
Visual Studio 17.0, MSBuild 17.0 a .NET 6.0 vyžadují NuGet.exe 6.0 nebo novější.
Shrnutí: Novinky ve verzi 6.0.2
- [Zabezpečení]: Informační zpravodaj zabezpečení společnosti Microsoft CVE 2022-30184 | Ohrožení zabezpečení spočívající ve zpřístupnění informací v .NET – #11883
Shrnutí: Novinky ve verzi 6.0.0
🎉 Toto je první verze, která nabízí úplné vytváření a obnovení podpory balíčků NuGet, které cílí na .NET 6.0 🎉.
Podpora .NET 6
NuGet 6.0 je první verze, která nabízí plnou podporu vytváření a obnovování balíčků NuGet, které cílí na .NET 6.0. Teď můžete cílit na následující cílové architektury:
- net6.0
- net6.0-windows
- net6.0-android
- net6.0-ios
- net6.0-macos
- net6.0-maccatalyst
- net6.0-tvos
- net6.0-tizen
Pokud v současné době neznáte cíle .NET 6.0 nebo jak bude vypadat v budoucnu, nezapomeňte se podívat na specifikaci TFM .NET 6.0.
Mapování zdroje
V tomto roce se mnoho správců balíčků dozvědělo o záměnách závislostí, ve kterých se uživatel dostal do instalace škodlivé závislosti místo toho, kterému chtěli. Aby byl váš softwarový dodavatelský řetězec proti těmto útokům zpřesněný, vyvinul tým NuGet novou funkci, která umožňuje namapovat závislosti na konkrétní zdroje. Níže je příklad použití mapování zdrojů k ochraně projektů.
<!-- 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>
Další informace o mapování zdrojů si můžete přečíst na našem blogu vydaném dříve v tomto roce.
Ohrožení zabezpečení balíčků v sadě Visual Studio
Při použití Správce balíčků NuGet v sadě Visual Studio se teď zobrazí ohrožení zabezpečení balíčků pro vaše balíčky, včetně podrobností, jako je počet a závažnost ohrožení zabezpečení, a také přímé odkazy na další informace o informačních zpravodajích.
Chování opakování a zpětného odvrácení
Nyní NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY
existuje příznak ke zlepšení chování klientů NuGet a opakování, jako je zvýšení maximálního počtu opakování a zvýšení zpoždění pro odolnější prostředí při výskytu slabšího připojení k internetu.
Vyloučit výchozí přípony souborů
Teď můžete pomocí příznaku <AllowedOutputExtensionsInPackageBuildOutputFolder>
MSBuild upravit přípony souborů zahrnuté ve výstupu sestavení balíčku. Tím získáte větší kontrolu nad rozšířeními zahrnutými do výstupní složky sestavení.
Vylepšené informace o vyřazení v sadě Visual Studio
Zastaralé balíčky v sadě Visual Studio teď obsahují odkaz na navrhovaný alternativní balíček, který se má použít. Pomocí této funkce můžete rychle procházet a instalovat balíčky, které jsou aktivně udržovány.
Přidání souboru README balíčku v sadě Visual Studio
Teď můžete přidat balíček README.md soubor přímo v sadě Visual Studio. Soubor README pomáhá sdělit důležité informace o balíčku. Často se jedná o první položku, kterou návštěvník uvidí při návštěvě balíčku na NuGet.org. Soubory README obvykle obsahují informace o:
- Co balíček dělá
- Proč je balíček užitečný
- Jak můžou uživatelé začít s balíčkem
- Kde můžou uživatelé získat pomoc nebo přispívat do vašeho balíčku
Další informace o přidání souboru README do balíčku NuGet najdete na našem blogu.
Rychlejší načítání řešení a přepínání větví v sadě Visual Studio
V sadě Visual Studio 2022 nuGet znovu nadefinoval kontrakt mezi obnovením balíčku NuGet a běžnými komponentami sady Visual Studio, aby se zlepšil výkon velkých řešení voláním obnovení pouze jednou místo vícekrát. To zlepšuje dobu potřebnou k tomu, aby se procesy na pozadí výrazně dokončily.
Nainstalujte sadu Visual Studio 2022 Preview a dejte nám vědět, jestli při načítání velkých řešení nebo přepínání mezi větvemi zaznamenáte rychlejší prostředí.
Rozhraní API sady Visual Studio SolutionRestoreManager NuGet se přesunula do balíčku NuGet.VisualStudio.
NuGet.SolutionRestoreManager.Interop se už neaktualizuje a jeho rozhraní API byla sloučena do balíčku NuGet.VisualStudio. Pokud aktualizujete existující rozšíření sady Visual Studio tak, aby fungovalo se sadou Visual Studio 2022 (17.0) a dříve jste používali NuGet.SolutionRestoreManager.Interop, měli byste tento balíček odinstalovat a upgradovat nebo nainstalovat NuGet.VisualStudio na verzi 6.0.0. Obory názvů a třídy zůstávají stejné, takže jsou kompatibilní z pohledu rozhraní API.
Dále platí, že po změně zásad sady Visual Studio už NuGet.VisualStudio nepoužívá EmbedInteropTypes
.
Proto bude mít vaše rozšíření odkaz na čas kompilace na NuGet.VisualStudio.dll.
NuGet dává sadě Visual Studio pokyn, aby používalo přesměrování vazeb, takže rozšíření nebude ovlivněno, když NuGet aktualizuje novější verze a vaše rozšíření se zkompiluje proti starší verzi našeho sestavení.
Z tohoto důvodu můžete potlačit sestavení NuGet z vsix, aby se zmenšila velikost stahování.
Balíčky NuGet se aktualizují, aby to udělaly automaticky v NuGetu 6.2 (pro Visual Studio 17.2).
Chcete-li potlačit sestavení NuGet z vsix, přidejte do souboru projektu následující:
<ItemGroup>
<SuppressFromVsix Include="NuGet.VisualStudio.dll" Visible="false" />
<SuppressFromVsix Include="NuGet.VisualStudio.Contracts.dll" Visible="false" />
</ItemGroup>
Funkce:
Přidání háku pro vyloučení určitých rozšíření výstupu sestavení z balíčku NuGet – #10690
Implementace nové priority pro xamarin TFM při použití net6.0+ – #10717
Implementace upozornění maccatalystu při "návratu" do xamarin.ios pro projekty net6.0+ - #10718
Přidání podpory oborů názvů balíčků v rámci konfigurace – přidání jen funkce čtení – #10725
Obory názvů balíčků: Účet pro filtrování oborů názvů balíčků při stahování balíčku v obnovení PackageReference – #10732
Přidání podpory filtrování oborů názvů v obnovení packages.config v nuget.exe a msbuild /t:restore – #10737
Přidejte kontrakt pro identifikaci zdroje obnovení, který nugetu pomůže lépe provést dávkové obnovení nebo přepínače větví. - #10807
Přidání podpory pro net6.0-tizen a net6.0-android - #10819
Přidání podpory filtrování oborů názvů pro obnovení packages.config v sadě Visual Studio – #10823
Přidání podpory pro TfmSpecificDebugSymbolsFile pro poskytnutí symbolů v vnitřním sestavení – #10913
Zobrazení ikony upozornění na kartě Nainstalovaná, pokud jsou nainstalované ohrožené balíčky – #10982
Zobrazit ikonu upozornění podle balíčku v seznamu balíčků, pokud existuje ohrožení zabezpečení – #10983
Zobrazení podrobností o ohrožení zabezpečení balíčku v podokně podrobností balíčku PMUI - #10985
Přidání odkazů na vyřazení na stránce Podrobností v uživatelském rozhraní PM - #10996
[Funkce]: Konfigurovat chování opakování a počtu opakování pro klienty NuGet – #11027
[Funkce]: Vyřešte všechna pravidla instalace balíčku pro obory názvů balíčků ve scénářích PackageReference a PackageDownload. - #11035
[Funkce]: Adresy všech instalačních pravidel balíčku pro obory názvů balíčků fungují v projektech stylu konfigurace balíčků – #11036
Chyby opravené v této verzi
Řadiče domény:
Zvažte odebrání rozšiřitelnosti, která umožňuje zobrazení dalších správců balíčků jako kompatibilní – #6623
Ukončení používání embedInteropTypes pro balíčky/sestavení VS v NuGetu – #10892
Project.nuget.g.targets by neměl být předpřipravený na MSBuildAllProjects v MSBuildu 16 nebo novějším – #10895
Odebrání zastaralých základních rozhraní API – #10940
Sloučení NuGet.SolutionRestoreManager.Interop do NuGet.VisualStudio – #10957
Odebrání modulu RuntimeEnvironmentHelper.IsDev14 – #11000
Aktualizace Newtonsoft.Json na 13.0.1 – #11095
[DCR]: Přejmenování funkce packageNamespaces na packageSourceMapping – #11205
Chyby:
Instalace s režimem ukládání balíčků "nuspec" se vždy přeinstaluje – #2402
Update-Package -reinstall -ProjectName
<project>
nefunguje pro pr - #6088Položka se stejným klíčem již byla přidána – pokud graf projektu obsahuje název projectName == packageRef (stejné verze) – #6795
[Selhání testu] Navrhnout odebrání druhého duplicitního řetězce "Přijetí licence" v dialogovém okně Přijetí licence – #8162
Nejde odebrat konfigurační klíč pomocí nuget.exe – #8223
msbuild /t:Restore a Visual Studio vytvářejí různé soubory prostředků při názvu sestavení != název projektu - #8272
Uživatelské rozhraní PM nezlidňuje počet stahování, když 999 500 <= počet <=999 999 999 - #8800
Návrh analyzátoru Roslyn "install with package manager" (Instalace pomocí správce balíčků) otevře NuGet na nesprávnou kartu – #10124
Obnovení statického grafu by se mělo jasně volat, pokud projekt není
KnownToBeMSBuildFormat
volána prostřednictvím souboru řešení – #10363Příkaz "nuget spec" vygeneruje soubor .nuspec s iconUrl - #10400
Rfc3161TimestampTokenInfo.GetNonce může vyvolat - #10484
Ověření, že příkaz není v Mono - #10585 zakázaný
Metoda CreateLockFileTargetLibrary zpomaluje operaci obnovení – #10614
PackageArchieveReader nepřepíše CopyNupkgAsync, takže extrakce balíčků selže – #10708
Šíření informací o oborech názvů balíčků do příkazu restore – #10736
Ujistěte se, že filtrování oborů názvů se respektuje v instalaci a aktualizacích balíčku packages.config v PMUI – #10738
NuGet.Packaging.Extraction: Výjimky z prostředků nebyly nalezeny – #10776
Nelze použít vložený PackageReadmeFile při použití snupkg pro symboly - #10791
Odebrání redundantních přepínačů zpoždění uživatelského rozhraní v inicializaci projektu NuGet – #10824
Odebrání nepotřebných výčtů toList v cestě k kódu obnovení – #10835
Označení IVsPackageInstallerServices jako zastaralé – #10836
Balíčky NuGet stažené přes 1 miliardukrát ukazují nesprávnou jednotku – #10864
V tmavém motivu není vidět barva pozadí čísla na pravé straně karet "Aktualizace" a "Konsolidovat" – #10896
Vylepšení IVsProjectRestoreInfoSource – #10898
packages.lock.json nefunkční s projektem C# ve stylu sady Sdk, který cílí na net5.0-windows – #10901
Přidání výchozí implementace pro IVsSolutionRestoreService4 – #10908
[Rychlost odezvy] Odebrání implicitního rpc z vlákna na pozadí prostřednictvím nepotřebných rozšíření GetServiceAsync – #10916
Boxing bool is to compute hashcode is causing excessive allocations - #10917
Iterace závislostí knihovny způsobuje nadměrné přidělení enumerátorů – #10918
Vyhledávání v mezipaměti kompatibility přiděluje func pro každé vyhledávání – #10919
Přetížení WhereListIterator v DependencyWalker.CreateGraphNode - #10920
Výjimka při obnovování: Chyba metadat obnovení seznamu požadovaných cílových architektur – #10924
Sdílení redukčního nástroje architektury napříč konvencemi spravovaného kódu – #10925
Vygeneruje se NuGet VSIX s nesprávnými přesměrováními vazeb – #10946
Zpoždění uživatelského rozhraní NuGet Správce balíčků při spouštění inicializačních skriptů – #10947
Identifikátor SOURCEURI podpory předaný u balíčku nuget restore/install a dotnet restore nebo jiných ekvivalentních příkazů – #10948
Podpora filtrování oborů názvů pro příkaz nuget.exe install – #10961
Ukončení generování nezpracovaných vlastností pro každý segment – #10969
Neočekávaný odkaz NU1605 z tranzitivního odkazu, který nebyl nikdy vybrán (vyříznutý podgraf) – #10972
NuGet.Localization nemá žádnou ikonu balíčku – #10975
Vyhněte se zbytečně změně velikosti slovníku při výpočtu uzavření projektu - #10976
Konfliktní dokumentace k I Nastavení AddOrUpdate – #10980
Použití pole bajtů ve fondu při kopírování souborů a ověřování podpisů – #10988
Vyhněte se přidělení Task.WhenAny v walkeru závislostí – #10989
Ujistěte se, že filtrování oborů názvů je v instalačním balíčku packages.config dodrženo a aktualizuje PMC – #11001.
Ujistěte se, že se filtrování oborů názvů respektuje v instalačním rozhraní API balíčku packages.config/updates – #11002.
[Chyba]: Uživatelské rozhraní PM zobrazuje počet stažení 0, pokud je vybraný balíček již nainstalován – #11012
Omezení přidělení ve versionFormatter – #11014
Zastaralé nepoužité typy: LibraryDependencyType a související – #11015
[Chyba]:
nuget.exe install packages.config
nerespektuje-PackageSaveMode nuspec
- #11018[Chyba]:
$(IsPackable)
není citováno - #11025Vytvoření testů Apex s více zdrojovými úložišti pro filtrování oboru názvů PMUI Package – #11026
[Chyba]: [Přístupnost] Špatně čtené odkazy ve výsledcích hledání v uživatelském rozhraní PM pomocí světlého nebo tmavého motivu – #11055
IVsSolutionRestoreService4 by měl rozšířit IVsSolutionRestoreService3 – #11098
[Chyba]: Odkazy na poradce by měly být zarovnané v podokně podrobností PMUI - #11101
Popis ikony upozornění nainstalovaných ohrožených nebo vyřazených balíčků není jasný – #11103
[Rychlost odezvy] RestoreOperationLogger+StatusBarProgress.Dispose blokuje vlákno fondu vláken čekající na vlákno uživatelského rozhraní – #11115
Přidání času od poslední metriky obnovení – #11124
[Chyba]: nuget.exe regrese při zpracování rekurzivních
<files>
položek mezi 5.9.1 a 5.10.0 - #11125Await When Nominováno, pokud má projekt čekající nominaci – č. 11132
Možnost SourceUri podpory předaná v balíčku pro přidání dotnetu – #11140
[Chyba]: Uživatelské rozhraní VS PM nezobrazuje ikony JPEG pro balíčky – #11144
UIDelay:
nuget.packagemanagement.visualstudio.dll!NuGet.PackageManagement.VisualStudio.VsCoreProjectSystemReferenceReader+<GetProjectReferencesAsync>d__
– projekty CPS – #11162[Chyba]:
dotnet list package --outdated --interactive
Zneplatňuje zprostředkovatele přihlašovacích údajů mezipaměť pro každý uvedený balíček – #11169[Chyba]: Balíčky oborů názvů pro scénáře packages.config používají všechny zdroje jako záložní možnost, pokud pro balíček nejsou nalezeny žádné odpovídající obory názvů – #11170
Vyhněte se vyhledávání MEF ve vlákně uživatelského rozhraní během inicializaceprojektůch
[Chyba]: Popis na obrázku indikátoru upozornění na kartě Nainstalované už nefunguje – #11183
Všechna volání ServiceLocatoru, která načítají služby MEF, by se měla vyhnout vláknu uživatelského rozhraní. - #11201
[Chyba]: V sadě Visual Studio chybí telemetrická událost – #11206
Vyhněte se duplicitním voláním EnvDTEProjectUtility.IsSupportedAsync – #11207
Přidání IVsSolutionManager.GetSolutionDirectoryAsync – zvýšení výkonu a zastavení blokování volajícího vlákna v asynchronních cestách kódu - #11208
Přejmenování typů a proměnných v kódu produktu/testu tak, aby odráželo nový název funkce oborů názvů balíčků – #11216
[Chyba]: Sestavení ArPow nefunguje dobře v podadresáři nesouvisejícího úložiště Git – #11227
dotnet list package --vulnerable, --deprecated, --out zastaralé nefunguje pro přechodné pozitivní výsledky - #10767
Seznam všech problémů opravených v této verzi – 6.0
Seznam potvrzení v této verzi – 6.0.0
Shrnutí: Novinky ve verzi 6.0.1
Tato verze NuGetu byla aktualizována pouze v sadě Visual Studio.
Chyby opravené v této verzi
- [Chyba]: Zprostředkovatele služeb v sadě Visual Studio 17 – #11367 se nedá získat INuGetProjectService
- [Chyba]: Inicializace konzoly Správce balíčků může způsobit zablokování – #11320
Seznam potvrzení v této verzi – 6.0.1
Příspěvky komunity
Děkujeme všem přispěvatelům, kteří pomohli vytvořit tuto verzi NuGet úžasné!
Kdo | Žádosti o přijetí změn | Problémy |
---|---|---|
omajid | 3866 | Popisovač, který není null v dokumentu Rfc3161TimestampTokenInfo – #10484 |
marcin-krystianc | 3934 | Přidání mezipaměti pro LockFileTargetLibrary – #10614 |
krafs | 4151 | Odebrání návratové hodnoty z dokumentů v I Nastavení AddOrUpdate – #10980 |
huangqinjin | 4148 | Oprava PackageSaveMode nuspec vždy přeinstaluje - #2402 |
Insomniak47 | 4190 | fix(docs): Odebrání odkazu na uzavřený nebo nedokončící odkaz v pokynech pro přispívání – #8987 |
marcin-krystianc | 4194 | Nastavení účtu skriptů výkonu pro selhání operace obnovení – #9968 |
eriawan | 4159 | Opravy obklopování ($IsPackable) s jednoduchými uvozovkami - #11025 |
huangqinjin | 4193 | Instalace packages.config by měla respektovat PackageSaveMode – #11018 |
mfkl | 4199 | test: použití nové DependencyGraphSpec - #11168 |
omajid | 4254 | Použití --work-tree s git apply - #11227 |
Uvítáme váš názor
Vaše názory jsou pro nás důležité. Pokud v této verzi dojde k nějakým problémům, projděte si problémy gitHubu a komunitu vývojářů sady Visual Studio, kde najdete stávající problémy. V případě nových problémů v nuGetu nahlašte problém GitHubu. V případě obecných problémů s prostředím NuGet nám dejte vědět prostřednictvím možnosti Nahlásit problém ve vašem oblíbeném integrovaném vývojovém prostředí v části Nápověda > Nahlásit problém.