Sdílet prostřednictvím


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/NuGetScratchUser1doč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

.NET 6

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.

Visual Studio Package Vulnerabilities

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.

Visual Studio Package Deprecations

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 - #6088

  • Polož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í – #10363

  • Pří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 - #11025

  • Vytvoř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 - #11125

  • Await 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

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.