Catatan Rilis NuGet 6.0
Kendaraan distribusi NuGet:
Versi NuGet | Tersedia dalam versi Visual Studio | Tersedia di .NET SDK |
---|---|---|
6.0.0 | Visual Studio 2022 versi 17.0.0 | 6.0.01 |
6.0.1 | Visual Studio 2022 versi 17.0.2 | T/A |
6.0.2 | Visual Studio 2022 versi 17.0.11 | 6.0.301 1 |
6.0.3 | Visual Studio 2022 versi 17.0 | 6.0.1101 |
6.0.5 | T/A | 6.0.1181 |
6.0.6 | T/A | 6.0.1271 |
1 Diinstal dengan beban kerja Visual Studio 2022 with.NET Core
- [Keamanan]: Microsoft Security Advisory CVE-2024-0057 | Kerentanan Bypass Fitur Keamanan Klien NuGet - #12653
- [Keamanan]: Microsoft Security Advisory CVE-2023-29337 | Kerentanan Eksekusi Kode Jarak Jauh Klien NuGet - #12653
Catatan
Ada perubahan yang melanggar perilaku di Linux. Lokasi folder sementara, tempat NuGet menyimpan file sementara selama berbagai operasinya, telah berubah dari /tmp/NuGetScratch
ke /tmp/NuGetScratch<username>
. Misalnya untuk pengguna User1, folder sementara akan menjadi /tmp/NuGetScratchUser1
.
- [Keamanan]: Microsoft Security Advisory CVE-2022-41032 | .NET Elevasi Kerentanan Hak Istimewa - #12149
Catatan
Visual Studio 17.0, MSBuild 17.0, dan .NET 6.0 memerlukan NuGet.exe 6.0 atau yang lebih baru.
- [Keamanan]: Microsoft Security Advisory CVE 2022-30184 | Kerentanan Pengungkapan Informasi .NET - #11883
🎉 Ini adalah rilis pertama yang menawarkan dukungan penulisan dan pemulihan penuh untuk paket NuGet yang menargetkan .NET 6.0 🎉
NuGet 6.0 adalah rilis pertama yang menawarkan dukungan penulisan dan pemulihan penuh untuk paket NuGet yang menargetkan .NET 6.0. Sekarang Anda dapat menargetkan kerangka kerja target berikut:
- net6.0
- net6.0-windows
- net6.0-android
- net6.0-ios
- net6.0-macos
- net6.0-maccatalyst
- net6.0-tvos
- net6.0-tizen
Jika Anda tidak terbiasa dengan target .NET 6.0 hari ini atau seperti apa di masa depan, jangan lupa untuk memeriksa spesifikasi TFM .NET 6.0.
Awal tahun ini, banyak manajer paket menyadari serangan kebingungan dependensi di mana pengguna akan ditipu untuk menginstal dependensi berbahaya alih-alih yang dimaksudkan. Untuk memperkuat rantai pasokan perangkat lunak Anda terhadap serangan ini, tim NuGet telah mengembangkan fitur baru yang memungkinkan Anda memetakan dependensi Anda ke sumber tertentu. Di bawah ini adalah contoh bagaimana Anda dapat menggunakan pemetaan sumber untuk melindungi proyek Anda.
<!-- 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>
Anda dapat membaca lebih lanjut tentang pemetaan sumber di blog kami yang dirilis awal tahun ini.
Saat menggunakan Manajer Paket NuGet dalam Visual Studio, Anda sekarang akan melihat kerentanan paket untuk paket Anda termasuk detail seperti jumlah dan tingkat keparahan kerentanan serta tautan langsung untuk mempelajari lebih lanjut tentang saran.
Sekarang NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY
ada bendera untuk meningkatkan perilaku coba lagi & backoff klien NuGet seperti meningkatkan jumlah maksimum percobaan ulang dan meningkatkan penundaan untuk pengalaman yang lebih tangguh ketika mengalami koneksi internet yang lebih lemah.
Anda sekarang dapat menggunakan bendera <AllowedOutputExtensionsInPackageBuildOutputFolder>
MSBuild untuk mengedit ekstensi file yang disertakan dalam output build paket Anda. Ini memberi Anda lebih banyak kontrol atas ekstensi yang disertakan dalam folder output build Anda.
Paket yang tidak digunakan lagi di Visual Studio sekarang menyertakan tautan ke paket alternatif yang disarankan untuk digunakan. Anda dapat menggunakan fitur ini untuk menelusuri dan menginstal paket dengan cepat yang dikelola secara aktif.
Sekarang Anda dapat menambahkan file README.md paket langsung dalam Visual Studio. README membantu mengomunikasikan informasi penting tentang paket Anda. Ini sering kali merupakan item pertama yang akan dilihat pengunjung saat mengunjungi paket Anda di NuGet.org. File README biasanya menyertakan informasi tentang:
- Apa yang dilakukan paket
- Mengapa paket berguna
- Bagaimana pengguna dapat memulai paket
- Di mana pengguna bisa mendapatkan bantuan atau berkontribusi pada paket Anda
Anda dapat membaca lebih lanjut tentang menambahkan README ke paket NuGet Anda di blog kami.
Di Visual Studio 2022, NuGet telah mendefinisikan ulang kontrak antara pemulihan paket NuGet dan komponen Visual Studio umum untuk meningkatkan performa solusi besar dengan hanya memanggil pemulihan sekali alih-alih beberapa kali. Ini meningkatkan waktu yang diperlukan agar proses latar belakang selesai secara signifikan.
Instal Pratinjau Visual Studio 2022 dan beri tahu kami jika Anda melihat pengalaman yang lebih cepat saat memuat solusi besar Anda atau beralih antar cabang!
NuGet.SolutionRestoreManager.Interop tidak lagi diperbarui, dan API-nya telah digabungkan ke dalam paket NuGet.VisualStudio. Jika Anda memperbarui ekstensi Visual Studio yang ada untuk bekerja dengan Visual Studio 2022 (17.0), dan sebelumnya Anda menggunakan NuGet.SolutionRestoreManager.Interop, Anda harus menghapus instalasi paket tersebut dan meningkatkan/menginstal NuGet.VisualStudio ke versi 6.0.0. Namespace layanan dan kelas tetap sama, sehingga kompatibel dari perspektif API.
Selain itu, setelah perubahan kebijakan Visual Studio, NuGet.VisualStudio tidak lagi menggunakan EmbedInteropTypes
.
Oleh karena itu, ekstensi Anda akan memiliki referensi waktu kompilasi ke NuGet.VisualStudio.dll.
Nuget menginstruksikan Visual Studio untuk menggunakan pengalihan pengikatan, sehingga ekstensi Anda tidak akan terpengaruh saat NuGet memperbarui ke versi yang lebih baru dan ekstensi Anda dikompilasi terhadap versi rakitan kami yang lebih lama.
Untuk alasan ini, Anda dapat menekan rakitan NuGet dari vsix Anda untuk mengurangi ukuran unduhan.
Paket NuGet akan diperbarui untuk melakukan ini secara otomatis di NuGet 6.2 (untuk Visual Studio 17.2).
Untuk menekan rakitan NuGet dari vsix Anda, tambahkan yang berikut ini ke file proyek Anda:
<ItemGroup>
<SuppressFromVsix Include="NuGet.VisualStudio.dll" Visible="false" />
<SuppressFromVsix Include="NuGet.VisualStudio.Contracts.dll" Visible="false" />
</ItemGroup>
Fitur:
Tambahkan hook untuk mengecualikan ekstensi output build tertentu dari paket nuget - #10690
Terapkan prioritas baru untuk TFM xamarin saat menggunakan net6.0+ - #10717
Menerapkan peringatan maccatalyst saat "falling back" ke xamarin.ios untuk proyek net6.0+ - #10718
Menambahkan dukungan namespace paket sebagai bagian dari konfigurasi - tambahkan kemampuan membaca saja - #10725
Namespace paket: Akun untuk pemfilteran namespace paket dalam pengunduhan paket dalam pemulihan PackageReference - #10732
Menambahkan dukungan pemfilteran namespace dalam pemulihan packages.config di nuget.exe dan msbuild /t:restore - #10737
Tambahkan kontrak untuk mengidentifikasi sumber pemulihan, untuk membantu nuget pemulihan batch/sakelar cabang yang lebih baik. - #10807
Tambahkan dukungan untuk net6.0-tizen dan net6.0-android - #10819
Menambahkan dukungan pemfilteran namespace untuk pemulihan packages.config di Visual Studio - #10823
Tambahkan dukungan untuk TfmSpecificDebugSymbolsFile untuk menyediakan simbol dalam build dalam - #10913
Tampilkan ikon peringatan di tab Terinstal jika ada paket yang rentan terinstal - #10982
Tampilkan ikon peringatan menurut paket dalam daftar paket jika ada kerentanan - #10983
Tampilkan detail kerentanan paket di panel detail paket PMUI - #10985
Tambahkan Tautan Penghentian di halaman Detail di PM UI - #10996
[Fitur]: Membuat jumlah coba lagi dan perilaku backoff dapat dikonfigurasi untuk Klien Nuget - #11027
[Fitur]: Atasi semua aturan penginstalan paket untuk namespace paket yang berfungsi dalam skenario PackageReference dan PackageDownload. - #11035
[Fitur]: Mengatasi semua aturan penginstalan paket untuk namespace paket yang berfungsi dalam proyek gaya Konfigurasi Paket - #11036
DCR:
Pertimbangkan untuk menghapus ekstensibilitas yang memungkinkan manajer paket lain ditampilkan sebagai kompatibel - #6623
Berhenti menggunakan EmbedInteropTypes untuk paket/rakitan vs extenbility NuGet - #10892
Project.nuget.g.targets tidak boleh ditambahkan ke MSBuildAllProjects di MSBuild 16 atau yang lebih baru - #10895
Menghapus API inti usang - #10940
Gabungkan NuGet.SolutionRestoreManager.Interop ke NuGet.VisualStudio - #10957
Hapus RuntimeEnvironmentHelper.IsDev14 - #11000
Perbarui Newtonsoft.Json ke 13.0.1 - #11095
[DCR]: Ganti nama fitur packageNamespaces menjadi packageSourceMapping - #11205
Bug:
Menginstal dengan mode penyimpanan paket "nuspec" selalu menginstal ulang - #2402
Pembaruan-Paket -instal ulang -ProjectName
<project>
tidak berfungsi untuk PR - #6088"Item dengan kunci yang sama telah ditambahkan" - ketika grafik proyek memiliki nama proyek == nama packageRef (versi yang sama) - #6795
[Uji Kegagalan] Sarankan untuk menghapus string duplikat kedua "Penerimaan Lisensi" dalam dialog "Penerimaan Lisensi" - #8162
Tidak dapat menghapus kunci konfigurasi menggunakan nuget.exe - #8223
msbuild /t:Restore dan Visual Studio menghasilkan file aset yang berbeda saat nama assembly != nama proyek - #8272
UI PM tidak memanusiakan jumlah unduhan ketika 999.500 <= hitungan <=999.999 - #8800
Saran Roslyn Analyzer "instal dengan manajer paket" membuka tab NuGet ke salah - #10124
Pemulihan StaticGraph harus dengan jelas memanggil ketika proyek tidak
KnownToBeMSBuildFormat
Ketika Dipanggil melalui File Solusi - #10363Perintah "spesifikasi nuget" menghasilkan file .nuspec dengan iconUrl - #10400
Rfc3161TimestampTokenInfo.GetNonce dapat melemparkan - #10484
Memverifikasi perintah tidak dinonaktifkan pada Mono - #10585
Metode CreateLockFileTargetLibrary memperlambat operasi pemulihan - #10614
PackageArchieveReader tidak mengambil alih CopyNupkgAsync sehingga ekstraksi paket gagal - #10708
Menyebarkan informasi namespace paket ke perintah pemulihan - #10736
Pastikan pemfilteran namespace dihormati dalam penginstalan/pembaruan paket packages.config di PMUI - #10738
NuGet.Packaging.Extraction: pengecualian dari sumber daya tidak ditemukan - #10776
Tidak dapat menggunakan PackageReadmeFile yang disematkan saat menggunakan snupkg untuk simbol - #10791
Menghapus sakelar penundaan UI yang berlebihan di inisialisasi Proyek NuGet - #10824
Menghapus enumerasi ToList yang tidak perlu dalam codepath pemulihan - #10835
Tandai IVsPackageInstallerServices sebagai tidak digunakan lagi - #10836
Paket NuGet yang diunduh lebih dari 1 miliar kali menunjukkan unit yang salah - #10864
Sulit untuk melihat warna latar belakang angka di sebelah kanan tab "Pembaruan" dan "Konsolidasikan" dalam tema Gelap - #10896
Peningkatan IVsProjectRestoreInfoSource - #10898
packages.lock.json rusak dengan proyek Sdk-Style C# yang menargetkan net5.0-windows - #10901
Menambahkan implementasi default untuk IVsSolutionRestoreService4 - #10908
[Responsivitas] Hapus RPC implisit dari utas latar belakang melalui ekstensi GetServiceAsync yang tidak diperlukan - #10916
Tinju bool adalah untuk menghitung hashcode menyebabkan alokasi yang berlebihan - #10917
Iterasi atas Dependensi Pustaka menyebabkan alokasi Enumerator yang berlebihan - #10918
Pencarian cache kompatibilitas mengalokasikan Func untuk setiap pencarian - #10919
Keseluruhan alokasi WhereListIterator di DependencyWalker.CreateGraphNode - #10920
Pengecualian saat memulihkan: "Pulihkan metadata salah pada daftar kerangka kerja target yang diperlukan" - #10924
Berbagi peredam kerangka kerja di seluruh konvensi kode terkelola - #10925
NuGet VSIX dihasilkan dengan pengalihan pengikatan yang salah - #10946
Penundaan antarmuka pengguna NuGet Package Manager saat menjalankan skrip init - #10947
Dukungan sourceUri meneruskan pemulihan/penginstalan nuget dan paket pemulihan dotnet atau perintah setara lainnya - #10948
Dukungan pemfilteran namespace untuk perintah penginstalan nuget.exe - #10961
Berhenti menghasilkan properti mentah untuk setiap segmen - #10969
NU1605 tak terduga dari referensi transitif yang tidak pernah dipilih (subgraf yang dipangkas) - #10972
NuGet.Localization tidak memiliki ikon paket - #10975
Hindari mengubah ukuran kamus yang tidak perlu saat menghitung penutupan proyek - #10976
Dokumentasi yang bertentangan tentang I Pengaturan. AddOrUpdate - #10980
Gunakan array byte terkumpul saat menyalin file dan memvalidasi tanda tangan - #10988
Hindari Task.WhenAny alokasi di walker dependensi - #10989
Pastikan pemfilteran namespace dihormati dalam packages.config package installation/updates PMC - #11001
Pastikan pemfilteran namespace dihormati dalam packages.config package installation/updates IVs installer API - #11002
[Bug]: PM UI menunjukkan 0 jumlah unduhan ketika paket yang dipilih sudah diinstal - #11012
Mengurangi alokasi dalam VersionFormatter - #11014
Jenis yang tidak digunakan lagi: LibraryDependencyType dan terkait - #11015
[Bug]:
nuget.exe install packages.config
tidak menghormati-PackageSaveMode nuspec
- #11018[Bug]:
$(IsPackable)
tidak dikutip - #11025Membuat pengujian Apex dengan repositori multi sumber untuk pemfilteran namespace Paket PMUI - #11026
[Bug]: [Aksesibilitas] Sulit membaca tautan dalam hasil pencarian PM UI menggunakan Tema Terang atau Gelap - #11055
IVsSolutionRestoreService4 harus memperluas IVsSolutionRestoreService3 - #11098
[Bug]: Tautan penasihat harus diselaraskan di panel detail PMUI - #11101
Tipsalat ikon peringatan versi paket rentan/tidak digunakan yang diinstal tidak jelas - #11103
[Responsivitas] RestoreOperationLogger+StatusBarProgress.Dispose memblokir utas kumpulan utas yang menunggu utas UI - #11115
Tambahkan waktu sejak metrik pemulihan terakhir - #11124
[Bug]: nuget.exe regresi dalam menangani entri rekursif
<files>
antara 5.9.1 dan 5.10.0 - #11125Menunggu WhenNominated ketika proyek memiliki nominasi yang tertunda - #11132
Opsi sourceUri dukungan yang diteruskan pada paket penambahan dotnet - #11140
[Bug]: UI VS PM tidak menampilkan ikon JPEG untuk paket - #11144
UIDelay:
nuget.packagemanagement.visualstudio.dll!NuGet.PackageManagement.VisualStudio.VsCoreProjectSystemReferenceReader+<GetProjectReferencesAsync>d__
- Proyek CPS - #11162[Bug]:
dotnet list package --outdated --interactive
membuat penyedia kredensial membatalkan cache untuk setiap paket yang tercantum - #11169[Bug]: Namespace paket untuk skenario packages.config menggunakan semua sumber sebagai opsi fallback ketika tidak ada namespace layanan yang cocok yang ditemukan untuk paket - #11170
Hindari pencarian MEF pada utas UI selama inisialisasi proyek NuGet - #11176
[Bug]: Tipsalat pada gambar indikator peringatan di tab Terinstal tidak lagi berfungsi - #11183
Semua panggilan ServiceLocator yang mengambil layanan MEF harus menghindari utas UI. - #11201
[Bug]: Peristiwa telemetri hilang di Visual Studio - #11206
Hindari duplikat EnvDTEProjectUtility.IsSupportedAsync calls - #11207
Tambahkan IVsSolutionManager.GetSolutionDirectoryAsync - tingkatkan performa dan hentikan pemblokiran utas panggilan dalam codepath asinkron. - #11208
Ganti nama jenis/variabel dalam kode produk/pengujian untuk mencerminkan nama baru untuk fitur namespace paket - #11216
[Bug]: Build ArPow tidak berfungsi dengan baik ketika dalam subdirektori repositori git yang tidak terkait - #11227
paket daftar dotnet --vulnerable, --deprecated, --outdated tidak berfungsi untuk positif khusus transitif - #10767
Daftar semua masalah yang diperbaiki dalam rilis ini - 6.0
Daftar penerapan dalam rilis ini - 6.0.0
Hanya Visual Studio yang diperbarui dengan versi NuGet ini.
- [Bug]: Tidak dapat memperoleh INuGetProjectService dari broker layanan di Visual Studio 17 - #11367
- [Bug]: Inisialisasi Konsol Manajer Paket dapat menyebabkan kebuntuan - #11320
Daftar penerapan dalam rilis ini - 6.0.1
Terima kasih untuk semua kontributor yang membantu membuat rilis NuGet ini luar biasa!
Siapa | Prs | Masalah |
---|---|---|
omajid | 3866 | Menangani nonce menjadi null di Rfc3161TimestampTokenInfo - #10484 |
marcin-krystianc | 3934 | Menambahkan cache untuk LockFileTargetLibrary - #10614 |
krafs | 4151 | Nilai pengembalian yang dihapus dari dokumen pada I Pengaturan. AddOrUpdate - #10980 |
huangqinjin | 4148 | Perbaiki packageSaveMode nuspec selalu instal ulang - #2402 |
Insomniak47 | 4190 | fix(docs): Hapus tautan ke tautan tertutup/buntu dalam Panduan berkontribusi - #8987 |
marcin-krystianc | 4194 | Buat akun skrip performa untuk kegagalan operasi pemulihan - #9968 |
eriawan | 4159 | Memperbaiki Surround ($IsPackable) dengan tanda kutip tunggal - #11025 |
huangqinjin | 4193 | Instal packages.config harus mematuhi PackageSaveMode - #11018 |
mfkl | 4199 | test: gunakan DependencyGraphSpec baru - #11168 |
omajid | 4254 | Gunakan --work-tree dengan git apply - #11227 |
Tanggapan Anda sangat penting bagi kami. Jika ada masalah dengan rilis ini, periksa Masalah GitHub dan Komunitas Pengembang Visual Studio kami untuk masalah yang ada. Untuk masalah baru dalam NuGet, silakan laporkan Masalah GitHub. Untuk masalah pengalaman NuGet umum, beri tahu kami melalui opsi Laporkan Masalah yang ditemukan di IDE favorit Anda di bawah Bantuan > Laporkan Masalah.