Bootstrap penyedia dan NuGet.exe NuGet
NuGet.exe tidak termasuk dalam penyedia NuGet terbaru. Untuk operasi penerbitan modul atau skrip, PowerShellGet memerlukan NuGet.exebiner yang dapat dieksekusi . Hanya penyedia NuGet yang diperlukan untuk semua operasi lainnya, termasuk menemukan, menginstal, menyimpan, dan menghapus instalasi. PowerShellGet menyertakan logika untuk menangani bootstrap gabungan penyedia NuGet dan NuGet.exe, atau bootstrap hanya dari penyedia NuGet. Dalam kedua kasus, hanya satu pesan perintah yang harus terjadi. Jika komputer tidak tersambung ke Internet, pengguna atau administrator harus menyalin instans tepercaya penyedia NuGet dan/atau file NuGet.exe ke komputer yang terputus.
Catatan
Dimulai dengan versi 6, penyedia NuGet disertakan dalam penginstalan PowerShell.
Mengatasi kesalahan ketika penyedia NuGet belum diinstal pada komputer yang tersambung ke Internet
Find-Module -Repository PSGallery -Verbose -Name Contoso
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based
repositories. The NuGet provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or
'C:\Users\user1\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet
provider by running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you
want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): n
Find-Module : NuGet provider is required to interact with NuGet-based repositories. Please ensure
that '2.8.5.201' or newer version of NuGet provider is installed.
At line:1 char:1
+ Find-Module -Repository PSGallery -Verbose -Name Contoso
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Find-Module], InvalidOperationException
+ FullyQualifiedErrorId : CouldNotInstallNuGetProvider,Find-Module
Find-Module -Repository PSGallery -Verbose -Name Contoso
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based
repositories. The NuGet provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or
'C:\Users\user1\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet
provider by running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you
want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
VERBOSE: Installing NuGet provider.
Version Name Type Repository Description
------- ---- ---- ---------- -----------
2.5 Contoso Module PSGallery Contoso module
Mengatasi kesalahan ketika penyedia NuGet tersedia dan NuGet.exe tidak tersedia selama operasi penerbitan pada komputer yang terhubung ke Internet
Publish-Module -Name Contoso -Repository PSGallery -Verbose
NuGet.exe is required to continue
PowerShellGet requires NuGet.exe to publish an item to the NuGet-based repositories. NuGet.exe must
be available under one of the paths specified in PATH environment variable value. Do you want
PowerShellGet to install NuGet.exe now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): N
Publish-Module : NuGet.exe is required to interact with NuGet-based repositories. Please ensure
that NuGet.exe is available under one of the paths specified in PATH environment variable value.
At line:1 char:1
+ Publish-Module -Name Contoso -Repository PSGallery -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Publish-Module], InvalidOperationException
+ FullyQualifiedErrorId : CouldNotInstallNuGetExe,Publish-Module
Publish-Module -Name Contoso -Repository PSGallery -Verbose
NuGet.exe is required to continue
PowerShellGet requires NuGet.exe to publish an item to the NuGet-based repositories. NuGet.exe must
be available under one of the paths specified in PATH environment variable value. Do you want
PowerShellGet to install NuGet.exe now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
VERBOSE: Installing NuGet.exe.
VERBOSE: Successfully published module 'Contoso' to the module publish location 'https://www.powershellgallery.com/api/v2/'.
Please allow few minutes for 'Contoso' to show up in the search results.
Mengatasi kesalahan ketika penyedia NuGet dan NuGet.exe tidak tersedia selama operasi penerbitan pada komputer yang terhubung ke Internet
Publish-Module -Name Contoso -Repository PSGallery -Verbose
NuGet.exe and NuGet provider are required to continue
PowerShellGet requires NuGet.exe and NuGet provider version '2.8.5.201' or newer to interact with
the NuGet-based repositories. Do you want PowerShellGet to install both NuGet.exe and NuGet provider
now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): N
Publish-Module : PowerShellGet requires NuGet.exe and NuGet provider version '2.8.5.201' or newer
to interact with the NuGet-based repositories. Please ensure that '2.8.5.201' or newer version of
NuGet provider is installed and NuGet.exe is available under one of the paths specified in PATH
environment variable value.
At line:1 char:1
+ Publish-Module -Name Contoso -Repository PSGallery -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Publish-Module], InvalidOperationException
+ FullyQualifiedErrorId : CouldNotInstallNuGetBinaries,Publish-Module
Publish-Module -Name Contoso -Repository PSGallery -Verbose
NuGet.exe and NuGet provider are required to continue
PowerShellGet requires NuGet.exe and NuGet provider version '2.8.5.201' or newer to interact with
the NuGet-based repositories. Do you want PowerShellGet to install both NuGet.exe and NuGet provider
now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
VERBOSE: Installing NuGet provider.
VERBOSE: Installing NuGet.exe.
VERBOSE: Successfully published module 'Contoso' to the module publish location 'https://www.powershellgallery.com/api/v2/'.
Please allow few minutes for 'Contoso' to show up in the search results.
Bootstrap penyedia NuGet secara manual pada komputer yang tidak tersambung ke Internet
Proses yang ditunjukkan di atas mengasumsikan mesin terhubung ke Internet dan dapat mengunduh file dari lokasi publik. Jika itu tidak memungkinkan, satu-satunya opsi adalah bootstrap komputer menggunakan proses yang diberikan di atas, dan menyalin penyedia secara manual ke simpul yang terisolasi melalui proses tepercaya offline. Kasus penggunaan yang paling umum untuk skenario ini adalah ketika galeri privat tersedia untuk mendukung lingkungan yang terisolasi.
Setelah mengikuti proses di atas untuk bootstrap komputer yang terhubung ke Internet, Anda akan menemukan file penyedia di lokasi:
C:\Program Files\PackageManagement\ProviderAssemblies\
Struktur folder/file penyedia NuGet akan (mungkin dengan nomor versi yang berbeda):
NuGet
--2.8.5.208
----Microsoft.PackageManagement.NuGetProvider.dll
Salin folder dan file ini menggunakan proses tepercaya ke komputer offline. Untuk menggunakan penyedia pada komputer offline, penyedia harus diimpor. Jalankan perintah berikut pada komputer offline:
Import-PackageProvider -Name NuGet
Bootstrapping secara manual NuGet.exe untuk mendukung operasi penerbitan pada komputer yang tidak tersambung ke Internet
Selain proses untuk bootstrap penyedia NuGet secara manual, jika komputer akan digunakan untuk menerbitkan modul atau skrip ke galeri privat menggunakan Publish-Module
cmdlet atau Publish-Script
, file NuGet.exe biner yang dapat dieksekusi akan diperlukan.
Kasus penggunaan yang paling umum untuk skenario ini adalah ketika galeri privat tersedia untuk mendukung lingkungan yang terisolasi. Ada dua opsi untuk mendapatkan file NuGet.exe.
Salah satu opsinya adalah bootstrap komputer yang terhubung ke Internet dan menyalin file ke komputer offline menggunakan proses tepercaya. Setelah bootstrapping komputer yang terhubung ke Internet, biner NuGet.exe akan terletak di salah satu dari dua folder:
Publish-Module
Jika cmdlet atauPublish-Script
dijalankan dengan izin yang ditinggikan (Sebagai Administrator):$env:ProgramData\Microsoft\Windows\PowerShell\PowerShellGet
Jika cmdlet dijalankan sebagai pengguna tanpa izin yang ditingkatkan:
$HOME\AppData\Local\Microsoft\Windows\PowerShell\PowerShellGet\
Opsi kedua adalah mengunduh NuGet.exe dari situs web NuGet.Org: https://dist.nuget.org/index.html Saat memilih versi NugGet untuk mesin produksi, pastikan versi tersebut lebih baru dari 2.8.5.208, dan identifikasi versi yang telah diberi label "direkomendasikan". Ingatlah untuk membuka blokir file jika diunduh menggunakan browser. Ini dapat dilakukan dengan menggunakan Unblock-File
cmdlet .
Dalam kedua kasus, file NuGet.exe dapat disalin ke lokasi mana pun di $env:PATH
, tetapi lokasi standarnya adalah:
Untuk membuat executable tersedia sehingga semua pengguna dapat menggunakan
Publish-Module
danPublish-Script
cmdlet:$env:ProgramData\Microsoft\Windows\PowerShell\PowerShellGet
Untuk membuat executable hanya tersedia untuk pengguna tertentu, salin ke lokasi hanya dalam profil pengguna tersebut:
$HOME\AppData\Local\Microsoft\Windows\PowerShell\PowerShellGet\
PowerShell Gallery
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk