Indítsa el a NuGet-szolgáltatót, és NuGet.exe

NuGet.exe a legújabb NuGet-szolgáltató nem tartalmazza. Egy modul vagy szkript közzétételi műveleteihez a PowerShellGetnek szüksége van a bináris végrehajtható fájlra,NuGet.exe. Csak a NuGet-szolgáltató szükséges az összes többi művelethez, beleértve a find, install, save és uninstall műveleteket. A PowerShellGet olyan logikát tartalmaz, amely a NuGet-szolgáltató és a nuget-szolgáltató NuGet.exe vagy csak a NuGet-szolgáltató rendszerindítását kezeli. Mindkét esetben csak egyetlen parancssori üzenetnek kell lennie. Ha a gép nem csatlakozik az internethez, a felhasználónak vagy rendszergazdának át kell másolnia a NuGet-szolgáltató és/vagy a NuGet.exe-fájl megbízható példányát a leválasztott gépre.

Megjegyzés

A 6-os verziótól kezdődően a NuGet-szolgáltató része a PowerShell telepítésének.

Olyan hiba megoldása, amely akkor jelenik meg, ha a NuGet-szolgáltató nincs telepítve internetkapcsolattal csatlakozó gépre

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

Feloldó hiba, ha a NuGet-szolgáltató elérhető és NuGet.exe nem érhető el a közzétételi művelet során egy internetkapcsolattal csatlakozó gépen

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.

Hiba megoldása, ha a NuGet-szolgáltató és a NuGet.exe nem érhető el a közzétételi művelet során egy internetkapcsolattal csatlakozó gépen

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.

A NuGet-szolgáltató manuális rendszerindítása olyan gépen, amely nem csatlakozik az internethez

A fent leírt folyamatok feltételezik, hogy a gép csatlakozik az internethez, és letölthet fájlokat egy nyilvános helyről. Ha ez nem lehetséges, az egyetlen lehetőség egy gép rendszerindítása a fent megadott folyamatokkal, és a szolgáltató manuális másolása az elkülönített csomópontra egy offline megbízható folyamaton keresztül. Ebben a forgatókönyvben a leggyakrabban akkor használják, ha egy privát katalógus érhető el egy elkülönített környezet támogatásához.

Miután követte az internetkapcsolattal csatlakozó gép rendszerindításának fenti folyamatát, szolgáltatói fájlokat talál a helyen:

C:\Program Files\PackageManagement\ProviderAssemblies\

A NuGet-szolgáltató mappa-/fájlstruktúrája a következő lesz (valószínűleg eltérő verziószámmal):

NuGet
--2.8.5.208
----Microsoft.PackageManagement.NuGetProvider.dll

Másolja ezeket a mappákat és fájlokat megbízható folyamattal az offline gépekre. Ahhoz, hogy a szolgáltatót az offline gépen használjuk, importálni kell. Futtassa a következő parancsot az offline gépen:

Import-PackageProvider -Name NuGet

Manuális rendszerindítási NuGet.exe, hogy támogassa a közzétételi műveleteket egy olyan gépen, amely nem csatlakozik az internethez

A NuGet-szolgáltató manuális rendszerindítási folyamatán kívül, ha a gépet modulok vagy szkriptek privát katalógusban való közzétételére fogja használni a vagy parancsmagok használatával, szükség lesz az NuGet.exe bináris végrehajtható Publish-Module Publish-Script fájlra.

Ebben a forgatókönyvben a leggyakrabban akkor használják, ha egy privát katalógus érhető el egy elkülönített környezet támogatásához. A fájl beszerzésének két NuGet.exe van.

Az egyik lehetőség egy internetkapcsolattal csatlakozó gép rendszerindítása, majd a fájlok megbízható folyamattal való másolása az offline gépekre. Az internetkapcsolattal csatlakozó gép rendszerindítása után NuGet.exe bináris fájl a következő két mappa egyikében található:

  • Ha a vagy a parancsmagot emelt szintű engedélyekkel hajtották végre Publish-Module Publish-Script (rendszergazdaként):

    $env:ProgramData\Microsoft\Windows\PowerShell\PowerShellGet
    
  • Ha a parancsmagokat emelt szintű engedélyek nélküli felhasználóként hajtották végre:

    $env:userprofile\AppData\Local\Microsoft\Windows\PowerShell\PowerShellGet\
    

Egy másik lehetőség az NuGet.exe letöltése a NuGet.Org webhelyéről: Amikor kiválasztja a NugGet verzióját az éles gépekhez, győződjön meg arról, hogy az https://dist.nuget.org/index.html 2.8.5.208-asnál későbbi, és azonosítsa az "ajánlott" címkével jelölt verziót. Ne felejtse el feloldani a fájl letiltásának feloldását, ha böngészővel lett letöltve. Ez a parancsmag használatával Unblock-File hajtható végre.

A fájl mindkét esetben NuGet.exe a bármelyik helyére másolható, de a $env:path szabványos helyek a következőek:

  • A végrehajtható fájl elérhetővé tenni, hogy minden felhasználó használ és Publish-Module Publish-Script parancsmagokat használva:

    $env:ProgramData\Microsoft\Windows\PowerShell\PowerShellGet
    
  • Ahhoz, hogy a végrehajtható fájlt csak egy adott felhasználó számára tegye elérhetővé, másolja a fájlt arra a helyre, amely csak az adott felhasználó profilján belül található:

    $env:userprofile\AppData\Local\Microsoft\Windows\PowerShell\PowerShellGet\