Baca dalam bahasa Inggris

Bagikan melalui


Catatan Rilis NuGet 6.0

Kendaraan distribusi NuGet:

1 Diinstal dengan beban kerja Visual Studio 2022 with.NET Core

Ringkasan: Apa yang Baru di 6.0.6

  • [Keamanan]: Microsoft Security Advisory CVE-2024-0057 | Kerentanan Bypass Fitur Keamanan Klien NuGet - #12653

Ringkasan: Apa yang Baru di 6.0.5

  • [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.

Ringkasan: Apa yang Baru dalam 6.0.3

  • [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.

Ringkasan: Apa yang Baru di 6.0.2

  • [Keamanan]: Microsoft Security Advisory CVE 2022-30184 | Kerentanan Pengungkapan Informasi .NET - #11883

Ringkasan: Apa yang Baru di 6.0.0

🎉 Ini adalah rilis pertama yang menawarkan dukungan penulisan dan pemulihan penuh untuk paket NuGet yang menargetkan .NET 6.0 🎉

Dukungan .NET 6

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

.NET 6

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.

Pemetaan Sumber

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.

Kerentanan Paket di Visual Studio

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.

Visual Studio Package Vulnerabilities

Coba Lagi & Perilaku Backoff

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.

Mengecualikan Ekstensi File Default

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.

Informasi Penghentian yang Disempurnakan di Visual Studio

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.

Visual Studio Package Deprecations

Menambahkan ReadME Paket di Visual Studio

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.

Beban Solusi Yang Lebih Cepat & Pengalihan Cabang di Visual Studio

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!

API Visual Studio SolutionRestoreManager NuGet dipindahkan ke paket NuGet.VisualStudio

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

Masalah yang diperbaiki dalam rilis ini

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

  • Perintah "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 - #11025

  • Membuat 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 - #11125

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

Ringkasan: Apa yang Baru di 6.0.1

Hanya Visual Studio yang diperbarui dengan versi NuGet ini.

Masalah yang diperbaiki dalam rilis 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

Kontribusi komunitas

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

Sambutan umpan balik

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.