Penyempurnaan Manajemen Paket di WMF 5.1

Berikut ini adalah perbaikan yang dilakukan dalam WMF 5.1:

Alias Versi

Skenario: Jika Anda memiliki paket versi 1.0 dan 2.0, P1, yang diinstal pada sistem Anda, dan Anda ingin menghapus instalasi versi 1.0, Anda akan menjalankan Uninstall-Package -Name P1 -Version 1.0 dan mengharapkan versi 1.0 dihapus instalannya setelah menjalankan cmdlet. Namun hasilnya adalah bahwa versi 2.0 akan dihapus instalasinya.

Ini terjadi karena -Version parameter adalah alias dari -MinimumVersion parameter . Ketika PackageManagement mencari paket yang memenuhi syarat dengan versi minimum 1.0, packageManagement mengembalikan versi terbaru. Perilaku ini diharapkan dalam kasus normal karena menemukan versi terbaru biasanya merupakan hasil yang diinginkan. Namun, itu tidak boleh berlaku untuk kasus ini Uninstall-Package .

Solusi:menghapus -Version alias sepenuhnya dalam PackageManagement (alias OneGet) dan PowerShellGet.

Beberapa perintah untuk bootstrapping penyedia NuGet

Skenario: Saat Anda menjalankan Find-Module atau Install-Module cmdlet PackageManagement lainnya di komputer Anda untuk pertama kalinya, PackageManagement mencoba bootstrap penyedia NuGet. Ini dilakukan karena penyedia PowerShellGet juga menggunakan penyedia NuGet untuk mengunduh modul PowerShell. PackageManagement kemudian meminta izin kepada pengguna untuk menginstal penyedia NuGet. Setelah pengguna memilih "ya" untuk bootstrapping, versi terbaru penyedia NuGet akan diinstal.

Namun, dalam beberapa kasus, ketika Anda memiliki versi lama penyedia NuGet yang diinstal di komputer Anda, versi NuGet yang lebih lama terkadang dimuat terlebih dahulu ke sesi PowerShell (itulah kondisi balapan di PackageManagement). Namun PowerShellGet mengharuskan versi penyedia NuGet yang lebih baru berfungsi, jadi PowerShellGet meminta PackageManagement untuk bootstrap penyedia NuGet lagi. Ini menghasilkan beberapa perintah untuk bootstrapping penyedia NuGet.

Solusi: Di WMF5.1, PackageManagement memuat versi terbaru penyedia NuGet untuk menghindari beberapa perintah untuk bootstrap penyedia NuGet.

Anda juga dapat mengatasi masalah ini dengan menghapus versi lama penyedia NuGet (NuGet-Anycpu.exe) jika ada dari $env:ProgramFiles\PackageManagement\ProviderAssemblies $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies

Dukungan untuk PackageManagement pada komputer dengan akses Intranet saja

Skenario: Untuk skenario perusahaan, orang bekerja di bawah lingkungan di mana tidak ada akses Internet tetapi Hanya Intranet. PackageManagement tidak mendukung kasus ini di WMF 5.0.

Skenario: Dalam WMF 5.0, PackageManagement tidak mendukung komputer yang hanya memiliki akses Intranet (tetapi bukan Internet).

Solusi: Di WMF 5.1, Anda dapat mengikuti langkah-langkah ini untuk memungkinkan komputer Intranet menggunakan PackageManagement:

  1. Unduh penyedia NuGet menggunakan komputer lain yang memiliki koneksi Internet dengan menggunakan Install-PackageProvider -Name NuGet.

  2. Temukan penyedia NuGet di bawah $env:ProgramFiles\PackageManagement\ProviderAssemblies\nuget atau $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\nuget.

  3. Salin biner ke folder atau lokasi berbagi jaringan yang dapat diakses komputer Intranet, lalu instal penyedia NuGet dengan Install-PackageProvider -Name NuGet -Source <Path to folder>.

Penyempurnaan pengelogan peristiwa

Ketika Anda menginstal paket, Anda mengubah status komputer. Di WMF 5.1, PackageManagement sekarang mencatat peristiwa ke log peristiwa Windows untuk Install-Packageaktivitas , Uninstall-Package, dan Save-Package . Log Peristiwa sama dengan untuk PowerShell, yaitu, Microsoft-Windows-PowerShell, Operational.

Dukungan untuk autentikasi dasar

Dalam WMF 5.1, PackageManagement mendukung penemuan dan penginstalan paket dari repositori yang memerlukan autentikasi dasar. Anda dapat memberikan kredensial Anda ke Find-Package cmdlet dan Install-Package . Contohnya:

Find-Package -Source <SourceWithCredential> -Credential (Get-Credential)

Dukungan untuk menggunakan PackageManagement di belakang proksi

Dalam WMF 5.1, PackageManagement sekarang mengambil parameter -ProxyCredential proksi baru dan -Proxy. Dengan menggunakan parameter ini, Anda dapat menentukan URL proksi dan kredensial ke cmdlet PackageManagement. Secara default, pengaturan proksi sistem digunakan. Contohnya:

Find-Package -Source https://www.nuget.org/api/v2/ -Proxy http://www.myproxyserver.com -ProxyCredential (Get-Credential)