파워셸:연결되지 않은 시스템에 PowerShell용 Nuget 공급자를 설치하여 PS 명령줄에서 Nuget 패키지를 설치하려면 어떻게 해야 합니까?
를 설치하려고 pswindowsupdate.2.0.0.4.nupkg
인터넷에 연결되지 않은 Windows 7(윈도우 7) 컴퓨터의 Powershell 명령줄에서 사용할 수 있습니다.PS 5.1.14409.1005를 실행하고 있습니다.https://www.preview.powershellgallery.com/packages/PSWindowsUpdate/2.0.0.4 에서 nupkg을 받았습니다.
그PS
Install-Module -Name pswindowsupdate.2.0.0.4.nupkg -Repository {path to pswindowsupdate.2.0.0.4.nupkg}
다음과 같은 오류 메시지가 표시합니다.
PowerShellGet에서 NuGet 기반 저장소와 상호 작용하려면 NuGet 공급자 버전 '2.8.5.201' 이상이 필요합니다.NuGet 공급자는 C:에서 사용 가능해야 합니다.\Program Files\PackageManagement\ProviderAssembly' 또는 'C:\Users{mylogin}\AppData\Local\PackageManagement\ProviderAssembly'입니다.또한 'Install-PackageProvider-NameNuGet-MinimumVersion 2.8.5.201 -Force'를 실행하여 NuGet 공급자를 설치할 수 있습니다.지금 PowerShell에서 NuGet 공급자를 설치하고 가져오시겠습니까?
물론 인터넷에 연결되어 있지 않기 때문에 '예'라고 말하면 NuGet 공급자를 설치하지 못합니다.
는 나는얻음을 얻었습니다.nuget.exe
'v4.7.0)', 'C:'에했습니다.\Program Files\PackageManagement\ProviderAssembly' 와 'C:\ Files를 my\Program Files\PackageManagement\ProviderAssembly'의 my 로로 이동합니다path
진술. 그나실을 실행합니다.Install-Module -Name pswindowsupdate.2.0.0.4.nupkg -Repository {path to pswindowsupdate.2.0.0.4.nupkg}
여전히 실패합니다.
이 정확히 입니까?NuGet provider
nuget.exe?PowerShell 명령줄에서 이 Nuget 패키지를 설치할 수 있도록 PowerShell용 Nuget 공급자(v2.8.5.201 이상)를 가져와 설치하는 방법은 무엇입니까?
참고: Visual Studio는 제 질문에 전혀 관여하지 않습니다.
이전의 모든 답변을 시도해 보았지만 다음 답변만 해결되었습니다.
1 - Powershell 열기(관리자 권한으로)
2 - 실행:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
3 - 실행:
Install-PackageProvider -Name NuGet
저자는 닐스 와이스트라: 마이크로소프트 포럼입니다.
trebleCode의 답변을 받아들였지만 관심 nupkg을 설치하기 위해 취한 조치에 대해 조금 더 자세히 설명하고자 합니다.pswindowsupdate.2.0.0.4.nupkg
TrebleCode의 답변을 따르는 방법으로 연결되지 않은 Win 7 기계에서.
첫 번째: 좀 더 조사해 본 결과, trebleCode가 언급하는 MS 문서를 발견했다고 생각합니다.
트레블 코드가 언급한 것처럼 계속하기 위해 다음을 수행했습니다.
연결된 컴퓨터에 NuGet 공급자 설치
연결된 시스템(Win 10 시스템)에서 PS 명령줄에서 이란을 실행했습니다.Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.208 -Force
Nuget 소프트웨어는 'Net'에서 가져와 로컬 연결된 컴퓨터에 설치되었습니다.
후 는 NuGet 파일에 있습니다.C:\Program Files\PackageManagement\ProviderAssemblies
이름)\ProviderAssemblies
와는반과 \ReferenceAssemblies
트레블 코드의 답변과 관련된 한 가지 사소한 차이였습니다.
공급자 소프트웨어는 다음과 같은 폴더 구조에 있습니다.
C:\Program Files\PackageManagement\ProviderAssemblies
\NuGet
\2.8.5.208
\Microsoft.PackageManagement.NuGetProvider.dll
연결되지 않은 컴퓨터에 NuGet 공급자 설치
에서 \ 폴더 하위 폴더썸하여 결된컴및 \NuGet 폴를 (든모하위폴더더다니복습했사연다에음여)로 했습니다.C:\Program Files\PackageManagement\ProviderAssemblies
연결되지 않은 ( 7) (Win 7) 스은않되지서.
는 비연결 7)를 하고 연되지않은결(Win 7) 서에를 PS(v5) 고다습을 실행했습니다.Import-PackageProvider -Name NuGet -RequiredVersion 2.8.5.208
공를현가로 .PowerShell
session
도망친Get-PackageProvider -ListAvailable
그리고 이것을 보았습니다(NuGet은 이전에 존재하지 않았던 곳에 나타납니다).
Name Version DynamicOptions
---- ------- --------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
NuGet 2.8.5.208 Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipValidate
PowerShellGet 1.0.0.1 PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPathUpdate, Filter, Tag, Includes, DscResource, RoleCapability, Command, PublishLocati...
Programs 3.0.0.0 IncludeWindowsInstaller, IncludeSystemComponent
연결되지 않은 컴퓨터에 로컬 리포지토리 만들기
7: 연되지않은 (Win 7)).c:\users\foo\Documents\PSRepository
)
보고서를 등록했습니다.Register-PSRepository -Name fooPsRepository -SourceLocation c:\users\foo\Documents\PSRepository -InstallationPolicy Trusted
pswindowsupdateNuGet 패키지 설치
나는 nupkg을 받아서 복사했습니다.pswindowsupdate.2.0.0.4.nupkg
c:\users\foo\Documents\PSRepository
연결되지 Win7 에서 ㅠㅠㅠㅠㅠ Win7 ㅠㅠㅠㅠㅠ
모듈의 이름을 실행하여 배웠습니다.Find-Module -Repository fooPsRepository
Version Name Repository Description
------- ---- ---------- -----------
2.0.0.4 PSWindowsUpdate fooPsRepository This module contain functions to manage Windows Update Client.
를실하모설다니치습을 실행했습니다.Install-Module -Name pswindowsupdate
하기 위해 를실하모설확치다인니습을 실행했습니다. Get-Command –module PSWindowsUpdate
CommandType Name Version Source
----------- ---- ------- ------
Alias Download-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias Get-WUInstall 2.0.0.4 PSWindowsUpdate
Alias Get-WUList 2.0.0.4 PSWindowsUpdate
Alias Hide-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias Install-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias Show-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias UnHide-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias Uninstall-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Cmdlet Add-WUServiceManager 2.0.0.4 PSWindowsUpdate
Cmdlet Enable-WURemoting 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUApiVersion 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUHistory 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUInstallerStatus 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUJob 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WULastResults 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WURebootStatus 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUServiceManager 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUSettings 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUTest 2.0.0.4 PSWindowsUpdate
Cmdlet Invoke-WUJob 2.0.0.4 PSWindowsUpdate
Cmdlet Remove-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Cmdlet Remove-WUServiceManager 2.0.0.4 PSWindowsUpdate
Cmdlet Set-WUSettings 2.0.0.4 PSWindowsUpdate
Cmdlet Update-WUModule 2.0.0.4 PSWindowsUpdate
저는 가도 될 것 같아요.
MSDocs는 시나리오에 대해 다음과 같이 설명합니다.
패키지 관리를 처음 실행하려면 Nuget 패키지 공급자를 다운로드하기 위해 인터넷에 연결해야 합니다.그러나 시스템에 인터넷이 연결되어 있지 않고 Nuget 또는 PowerShellGet 공급자를 사용해야 하는 경우에는 다른 시스템에 다운로드하여 대상 시스템에 복사할 수 있습니다.이 작업을 수행하려면 다음 단계를 수행합니다.
려달을 합니다.
Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -Force
인터넷에 연결된 컴퓨터에서 공급자를 설치합니다.후 는 설치가설공찾있에서 찾을 수.
$env:ProgramFiles\PackageManagement\ReferenceAssemblies\\\<ProviderName\>\\\<ProviderVersion\>
또는$env:LOCALAPPDATA\PackageManagement\ProviderAssemblies\\\<ProviderName\>\\\<ProviderVersion\>
.대상 컴퓨터의 해당 위치에 Nuget 폴더(이 경우 Nuget 폴더)를 배치합니다.대상 시스템이 Nano 서버인 경우 Nano 서버에서 Install-PackageProvider를 실행하여 올바른 Nuget 이진 파일을 다운로드해야 합니다.
PowerShell을 재시작하여 패키지 공급자를 자동으로 로드합니다. 를 합니다.
Get-PackageProvider -ListAvailable
시스템에서 사용할 수 있는 모든 패키지 공급자를 나열합니다.사용할 경우Import-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201
공급자를 현재 윈도우즈 PowerShell 세션으로 가져옵니다.
사용해 보십시오.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider NuGet -Force
Set-PSRepository PSGallery -InstallationPolicy Trusted
공급자는 PowerShell>=6.0과 함께 번들로 제공됩니다.
파일에서 패키지를 설치하는 방법이 필요한 경우 github 릴리스 페이지에서 최신 버전의 .msi 설치 관리자를 가져와 시스템에 복사한 후 설치하고 사용하면 됩니다.
다음은 제가 사용하는 스크립트입니다.Dockerfile
에 기반을 둔windows/servercore
Artifactory는 PowerShell Gallery입니다(onegetcdn.azureedge).순 용)
ARG ONEGET_NUGET_PROVIDER="Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll"
ARG ONEGET_PROVIDERS="https://artifactory/artifactory/generic-azureedge-onegetcdn/providers/"
RUN $ProviderPath = 'C:/Program Files/PackageManagement/ProviderAssemblies/'; `
New-Item -ItemType "directory" -Path $ProviderPath -Force; `
Invoke-WebRequest -Uri "${Env:ONEGET_PROVIDERS}${Env:ONEGET_NUGET_PROVIDER}" -OutFile "${ProviderPath}${Env:ONEGET_NUGET_PROVIDER}"; `
Register-PSRepository -Name "artifactory-powershellgallery-remote" -SourceLocation "https://artifactory/artifactory/api/nuget/powershellgallery-remote"; `
Unregister-PSRepository -Name PSGallery;
위치 및 dll 버전은 https://onegetcdn.azureedge.net/providers/providers.masterList.feed.swidtag 에서 볼 수 있습니다.
이 스레드의 어떤 옵션도 저에게 맞지 않았습니다.PowerShell Core 7.1.5를 사용하고 있습니다.$env에서 Windows Powershell Modules를 제거했습니다.PS 모듈 경로.기본적으로 환경 변수를 확인하고 "Windows PowerShell"이 있는 경로를 찾아 제거합니다.
Manager를 Nuget Package Manager를 .-Force
다음 메시지를 무시하는 플래그:
Install-PackageProvider NuGet -Force
적어도 윈도우즈 Powershell(5.1)의 경우에는 보안 프로토콜에 대한 트릭을 사용할 필요가 없습니다.
언급URL : https://stackoverflow.com/questions/51406685/powershell-how-do-i-install-the-nuget-provider-for-powershell-on-a-unconnected
'programing' 카테고리의 다른 글
PowerShell 코드 포맷기/예쁜 프린터가 있습니까? (0) | 2023.07.30 |
---|---|
예제별 JPA 사양 (0) | 2023.07.30 |
php에서 출력의 mime 유형 변경 (0) | 2023.07.30 |
HttpContext입니다.현재의.세션이 Ashx 파일에서 null입니다. (0) | 2023.07.30 |
Python에서 목록 요소를 별도의 줄로 인쇄 (0) | 2023.07.30 |