Baca dalam bahasa Inggris

Bagikan melalui


Catatan Rilis NuGet 2.5

Catatan Rilis NuGet 2.2.1 Catatan Rilis | NuGet 2.6

NuGet 2.5 dirilis pada 25 April 2013. Rilis ini sangat besar, kami merasa terpaksa untuk melewati versi 2.3 dan 2.4! Hingga saat ini, ini adalah rilis terbesar yang kami miliki untuk NuGet, dengan lebih [160 work items](https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.5&status=all) dalam rilis.

Pengakuan

Kami ingin berterima kasih kepada kontributor eksternal berikut atas kontribusi signifikan mereka terhadap NuGet 2.5:

  1. [Daniel Plaisted](https://www.codeplex.com/site/users/view/dsplaisted) (@dsplaisted)
    • [#2847](https://nuget.codeplex.com/workitem/2847) - Tambahkan MonoAndroid, MonoTouch, dan MonoMac ke daftar pengidentifikasi kerangka kerja target yang diketahui.
  2. [Andres G. Aragoneses](https://www.codeplex.com/site/users/view/knocte) (@knocte)
    • [#2865](https://nuget.codeplex.com/workitem/2865) - Memperbaiki ejaan NuGet.targets untuk OS peka huruf besar/kecil
  3. [David Fowler](https://www.codeplex.com/site/users/view/dfowler) (@davidfowl)
    • Buat solusi dibangun di Mono.
  4. [Andrew Theken](https://www.codeplex.com/site/users/view/atheken) (@atheken)
    • Memperbaiki pengujian unit yang gagal pada Mono.
  5. [Olivier Dagenais](https://www.codeplex.com/site/users/view/OliIsCool) (@OliIsCool)
    • [#2920](https://nuget.codeplex.com/workitem/2920) - perintah paket nuget.exe tidak menyebarkan Properti ke MSBuild
  6. [Miroslav Bajtos](https://www.codeplex.com/site/users/view/MiroslavBajtos) (@bajtos)
    • [#1511](https://nuget.codeplex.com/workitem/1511) - Kode penanganan XML yang dimodifikasi untuk mempertahankan pemformatan.
  7. [Adam Ralph](http://www.codeplex.com/site/users/view/adamralph) (@adamralph)
    • Menambahkan kata yang dikenali ke kamus kustom untuk memungkinkan build.cmd berhasil.
  8. [Bruno Roggeri](https://www.codeplex.com/site/users/view/broggeri)
    • Perbaiki pengujian unit saat berjalan di VS yang dilokalkan.
  9. [Gareth Evans](https://www.codeplex.com/site/users/view/garethevans)
    • Antarmuka yang diekstrak dari PackageService
  10. [Maxime Brugidou](https://www.codeplex.com/site/users/view/brugidou) (@brugidou)
    • [#936](https://nuget.codeplex.com/workitem/936) - Menangani dependensi proyek saat mengemas
  11. [Xavier Decoster](https://www.codeplex.com/site/users/view/XavierDecoster) (@XavierDecoster)
    • [#2991](https://nuget.codeplex.com/workitem/2991), [#3164](https://nuget.codeplex.com/workitem/3164) - Mendukung Clear Text Password saat menyimpan kredensial sumber paket dalam file nuget.cofig
  12. [James Manning](http://www.codeplex.com/site/users/view/jmanning) (@manningj)
    • [#3190](http://nuget.codeplex.com/workitem/3190), [#3191](https://nuget.codeplex.com/workitem/3191) - Memperbaiki deskripsi bantuan Get-Package

Kami juga menghargai individu berikut karena menemukan bug dengan NuGet 2.5 Beta/RC yang disetujui dan diperbaiki sebelum rilis akhir:

  1. [Tony Wall](https://www.codeplex.com/site/users/view/CodeChief) (@CodeChief)
    • [#3200](https://nuget.codeplex.com/workitem/3200) - MSTest rusak dengan build NuGet 2.4 dan 2.5 terlama

Fitur penting dalam rilis

Perbolehkan pengguna menimpa file konten yang sudah ada

Salah satu fitur yang paling banyak diminta sepanjang masa adalah kemampuan untuk menimpa file konten yang sudah ada di disk ketika disertakan dalam paket NuGet. Dimulai dengan NuGet 2.5, konflik ini diidentifikasi dan Anda diminta untuk menimpa file, sedangkan sebelumnya file-file ini selalu dilewati.

Overwrite content files

'nuget.exe update' dan 'Install-Package' sekarang keduanya memiliki opsi baru '-FileConflictAction' untuk mengatur beberapa default untuk skenario baris perintah.

Atur tindakan default saat file dari paket sudah ada di proyek target. Atur ke 'Timpa' untuk selalu menimpa file. Atur ke 'Abaikan' untuk melewati file. Jika tidak ditentukan, file akan meminta setiap file yang bertentangan.

Impor otomatis target MSBuild dan file alat peraga

Folder konvensional baru telah dibuat di tingkat atas paket NuGet. Sebagai peer ke \lib, , dan \tools, Anda sekarang dapat menyertakan \build folder \contentdalam paket Anda. Di bawah folder ini, Anda dapat menempatkan dua file dengan nama tetap, {packageid}.targets atau {packageid}.props. Kedua file ini dapat berada langsung di bawah build atau di bawah folder khusus kerangka kerja seperti folder lainnya. Aturan untuk memilih folder kerangka kerja yang paling cocok sama persis dengan yang ada di folder tersebut.

Ketika NuGet menginstal paket dengan file \build, NuGet akan menambahkan elemen MSBuild <Import> dalam file proyek yang menunjuk ke .targets file dan .props . File .props ditambahkan di bagian atas, sedangkan .targets file ditambahkan ke bagian bawah.

Tentukan referensi yang berbeda per platform menggunakan <References/> elemen

Sebelum 2.5, dalam .nuspec file, pengguna hanya dapat menentukan file referensi, yang akan ditambahkan untuk semua kerangka kerja. Sekarang dengan fitur baru ini di 2.5, pengguna dapat menulis <reference/> elemen untuk setiap platform yang didukung, misalnya:

<references>
    <group targetFramework="net45">
        <reference file="a.dll" />
    </group>
    <group targetFramework="netcore45">
        <reference file="b.dll" />
    </group>
    <group>
        <reference file="c.dll" />
    </group>
</references>

Berikut adalah alur bagaimana NuGet menambahkan referensi ke proyek berdasarkan .nuspec file:

  1. lib Temukan folder yang sesuai untuk kerangka kerja target dan dapatkan daftar rakitan dari folder tersebut
  2. Temukan grup referensi secara terpisah yang sesuai untuk kerangka kerja target dan dapatkan daftar rakitan dari grup tersebut. Grup referensi tanpa kerangka kerja target yang ditentukan adalah grup fallback.
  3. Temukan persimpangan dari dua daftar, dan gunakan sebagai referensi untuk ditambahkan

Fitur baru ini akan memungkinkan penulis paket untuk menggunakan fitur Referensi untuk menerapkan subset rakitan ke kerangka kerja yang berbeda ketika mereka perlu membawa rakitan duplikat di beberapa lib folder.

Catatan: Anda saat ini harus menggunakan paket nuget.exe untuk menggunakan fitur ini; NuGet Package Explorer belum mendukungnya.

Tombol Perbarui Semua untuk memungkinkan pembaruan semua paket sekaligus

Banyak dari Anda tahu tentang cmdlet PowerShell "Perbarui-Paket" untuk memperbarui semua paket Anda; sekarang ada cara mudah untuk melakukan ini melalui UI juga.

Untuk mencoba fitur ini:

  1. Membuat aplikasi MVC ASP.NET baru
  2. Luncurkan dialog 'Kelola Paket NuGet'
  3. Pilih 'Pembaruan'
  4. Klik tombol 'Perbarui Semua'

Update All button in the dialog

Dukungan referensi proyek yang disempurnakan untuk paket nuget.exe

Sekarang nuget.exe proses perintah paket yang dirujuk proyek dengan aturan berikut:

  1. Jika proyek yang dirujuk memiliki file yang .nuspec sesuai, misalnya ada file yang disebut proj1.nuspec di folder yang sama dengan proj1.csproj, maka proyek ini ditambahkan sebagai dependensi ke paket, menggunakan id dan versi yang dibaca dari .nuspec file.
  2. Jika tidak, file proyek yang dirujuk dibundel ke dalam paket. Kemudian proyek yang direferensikan oleh proyek ini akan diproses menggunakan aturan sames secara rekursif.
  3. Semua file DLL, .pdb, dan .exe ditambahkan.
  4. Semua file konten lainnya ditambahkan.
  5. Semua dependensi digabungkan.

Ini memungkinkan proyek yang direferensikan diperlakukan sebagai dependensi jika ada .nuspec file, jika tidak, itu menjadi bagian dari paket.

Detail selengkapnya di sini: [http://nuget.codeplex.com/workitem/936](http://nuget.codeplex.com/workitem/936)

Menambahkan properti 'Versi NuGet Minimum' ke paket

Atribut metadata baru yang disebut 'minClientVersion' sekarang dapat menunjukkan versi klien NuGet minimum yang diperlukan untuk menggunakan paket.

Fitur ini membantu penulis paket untuk menentukan bahwa paket hanya akan berfungsi setelah versi NuGet tertentu. Karena fitur baru .nuspec ditambahkan setelah NuGet 2.5, paket akan dapat mengklaim versi NuGet minimum.

<metadata minClientVersion="2.6">

Jika pengguna menginstal NuGet 2.5 dan paket diidentifikasi membutuhkan 2.6, isyarat visual akan diberikan kepada pengguna yang menunjukkan paket tidak akan dapat diinstal. Pengguna kemudian akan dipandu untuk memperbarui versi NuGet mereka.

Ini akan meningkat setelah pengalaman yang ada di mana paket mulai diinstal tetapi kemudian gagal menunjukkan versi skema yang tidak dikenali diidentifikasi.

Dependensi tidak lagi diperbarui selama penginstalan paket

Sebelum NuGet 2.5, ketika paket diinstal yang bergantung pada paket yang sudah diinstal dalam proyek, dependensi akan diperbarui sebagai bagian dari penginstalan baru, bahkan jika versi yang ada memenuhi dependensi.

Dimulai dengan NuGet 2.5, jika versi dependensi sudah terpenuhi, dependensi tidak akan diperbarui selama penginstalan paket lainnya.

Skenario:

  1. Repositori sumber berisi paket B dengan versi 1.0.0 dan 1.0.2. Ini juga berisi paket A yang memiliki dependensi pada B (>= 1.0.0).
  2. Asumsikan bahwa proyek saat ini sudah menginstal paket B versi 1.0.0. Sekarang Anda ingin menginstal paket A.

Di NuGet 2.2 dan yang lebih lama:

  • Saat menginstal paket A, NuGet akan memperbarui B secara otomatis ke 1.0.2, meskipun versi 1.0.0 yang ada sudah memenuhi batasan versi dependensi, yaitu >= 1.0.0.

Di NuGet 2.5 dan yang lebih baru:

  • NuGet tidak akan lagi memperbarui B, karena mendeteksi bahwa versi 1.0.0 yang ada memenuhi batasan versi dependensi.

Untuk latar belakang lebih lanjut tentang perubahan ini, baca detail [work item](https://nuget.codeplex.com/workitem/1681) serta yang terkait [discussion thread](https://nuget.codeplex.com/discussions/436712).

nuget.exe output permintaan http dengan verbositas terperinci

Jika Anda memecahkan masalah nuget.exe atau hanya ingin tahu permintaan HTTP apa yang dibuat selama operasi, sakelar '-verbosity terperinci' sekarang akan menghasilkan semua permintaan HTTP yang dibuat.

HTTP output from nuget.exe

nuget.exe push sekarang mendukung UNC dan sumber folder

Sebelum NuGet 2.5, jika Anda mencoba menjalankan 'nuget.exe push' ke sumber paket berdasarkan jalur UNC atau folder lokal, pendorongan akan gagal. Dengan fitur konfigurasi hierarkis yang baru ditambahkan, menjadi umum bagi nuget.exe untuk perlu menargetkan sumber UNC/folder, atau Galeri NuGet berbasis HTTP.

Dimulai dengan NuGet 2.5, jika nuget.exe mengidentifikasi sumber UNC/folder, itu akan melakukan salinan file ke sumber.

Perintah berikut sekarang akan berfungsi:

nuget push -source \\mycompany\repo\ mypackage.1.0.0.nupkg

nuget.exe mendukung file Config yang ditentukan secara eksplisit

nuget.exe perintah yang mengakses konfigurasi (semua kecuali 'spesifikasi' dan 'paket') sekarang mendukung opsi '-ConfigFile' baru, yang memaksa file konfigurasi tertentu untuk digunakan sebagai pengganti file konfigurasi default di %AppData%\nuget\Nuget.Config.

Contoh:

nuget sources add -name test -source http://test -ConfigFile C:\test\.nuget\Nuget.Config

Dukungan untuk proyek Asli

Dengan NuGet 2.5, alat NuGet sekarang tersedia untuk proyek Asli di Visual Studio. Kami mengharapkan sebagian besar paket asli akan menggunakan fitur impor MSBuild di atas, menggunakan alat yang dibuat oleh proyek CoApp. Untuk informasi selengkapnya, baca detail tentang alat di situs web coapp.org.

Nama kerangka kerja target "native" diperkenalkan untuk paket untuk menyertakan file dalam \build, \content, dan \tools ketika paket diinstal ke dalam proyek asli. Folder 'lib' tidak digunakan untuk proyek asli.