다음을 통해 공유


Visual Studio 패키지 관리자 콘솔을 사용하여 패키지 관리(PowerShell)

Visual Studio의 패키지 관리자 콘솔은 PowerShell 명령을 사용하여 NuGet 패키지와 상호 작용합니다. 패키지 관리자 UI를 통해 작업을 수행할 방법이 없는 경우 콘솔을 사용할 수 있습니다. 콘솔에서 dotnet CLI 또는 NuGet CLI 명령을 사용할 수도 있습니다.

이 문서에서는 패키지 관리자 콘솔에서 PowerShell 명령을 사용하여 NuGet 패키지를 찾고, 설치하고, 업데이트하고, 제거하는 방법을 설명합니다. 전체 패키지 관리자 콘솔 PowerShell 명령 참조는 PowerShell 참조를 참조하세요.

Important

이 문서의 PowerShell 명령 및 인수는 Visual Studio 패키지 관리자 콘솔과 관련이 있습니다. 이러한 명령은 일반 PowerShell 환경에서 사용할 수 있는 PackageManagement 모듈 명령과 다릅니다. 각 환경에는 다른 환경에서는 사용할 수 없는 명령이 있으며 이름이 같은 명령은 특정 인수와 다를 수 있습니다.

콘솔 가용성

Visual Studio 2017부터 NuGet 및 NuGet은 만들 때 자동으로 설치할 패키지 관리자 있습니다. Visual Studio의 NET 관련 워크로드. Visual Studio 설치 관리자 개별 구성 요소>코드 도구>NuGet 패키지 관리자선택하여 패키지 관리자 설치할 수도 있습니다.

도구>확장 및 업데이트 또는 확장 메뉴에서 NuGet 패키지 관리자 확장을 검색할 수도 있습니다. Visual Studio에서 확장 설치 관리자를 사용할 수 없는 경우 https://dist.nuget.org/index.html에서 직접 확장을 다운로드할 수 있습니다.

패키지 관리자 콘솔은 Windows의 Visual Studio용 패키지 관리자 기본 제공됩니다. Visual Studio Code 및 Mac용 Visual Studio 콘솔을 포함하지 않습니다. Mac용 Visual Studio NuGet 패키지를 관리하기 위한 UI가 있으며, 해당하는 콘솔 명령은 다음을 통해 사용할 수 있습니다.NuGet CLI. 자세한 내용은 Mac용 Visual Studio NuGet 패키지 설치 및 관리를 참조하세요.

패키지를 빠르게 찾아 설치

패키지 관리자 콘솔을 사용하여 패키지를 빠르게 찾고 설치하려면 다음을 수행합니다.

  1. Visual Studio에서 프로젝트 또는 솔루션을 열고 도구>NuGet 패키지 관리자>패키지 관리자 콘솔을 선택하여 패키지 관리자 콘솔 창을 엽니다.

  2. 콘솔에서 키워드(keyword) 입력 Find-Package 하여 설치하려는 패키지를 찾습니다. 예를 들어 키워드(keyword) elmah포함된 패키지를 찾으려면 다음 명령을 실행합니다. 원하는 패키지 이름을 이미 알고 있는 경우 이 단계를 건너뜁니다.

    Find-Package elmah
    
  3. 이름을 찾으면 명령을 사용하여 Install-Package 패키지를 설치합니다. 예를 들어 패키지를 설치하려면 다음을 Elmah.MVC 입력합니다.

    Install-Package Elmah.MVC
    

이러한 명령에 대한 자세한 내용은 패키지 찾기 및 패키지 설치 섹션을 참조하세요.

많은 콘솔 작업은 Visual Studio에서 알려진 경로 이름을 가진 솔루션을 열어 두는 것에 따라 달라집니다. 저장되지 않은 솔루션이 있거나 솔루션이 없는 경우 솔루션이 열려 있지 않거나 저장되지 않은 오류가 표시됩니다. 열려 있고 저장된 솔루션이 있는지 확인하세요. 오류를 수정하려면 솔루션을 만들고 저장하거나 저장되지 않은 솔루션을 저장합니다.

콘솔 컨트롤

Visual Studio에서 패키지 관리자 콘솔을 열려면 상단 메뉴에서 도구>NuGet 패키지 관리자>패키지 관리자 콘솔을 선택합니다. 콘솔은 원하는 대로 정렬하고 배치할 수 있는 Visual Studio 창입니다. 자세한 내용은 Visual Studio에서 창 레이아웃 사용자 지정을 참조하세요.

기본적으로 콘솔 명령은 창 맨 위에 있는 컨트롤에 표시된 특정 패키지 원본 및 프로젝트에 대해 작동합니다.

Screenshot that shows the Package Manager Console controls for package source and project.

다른 패키지 원본 또는 프로젝트를 선택하면 후속 명령의 기본값이 변경됩니다. 기본값을 변경하지 않고 단일 명령에 대해 이러한 설정을 재정의하려면 대부분의 콘솔 명령에서 지원 및 -ProjectName 옵션을 지원 -Source 합니다.

패키지 원본을 관리하려면 기어 아이콘을 선택하면 도구>옵션>NuGet 패키지 관리자>패키지 원본 대화 상자가 열립니다. 프로젝트 선택기 옆의 컨트롤은 콘솔의 내용을 지웁니다.

Screenshot that shows the Package Manager Console settings and clear controls.

맨 오른쪽의 단추는 장기 실행 명령을 중단합니다. 예를 들어 실행은 Get-Package -ListAvailable -PageSize 500 기본 원본에서 사용 가능한 상위 500개 패키지(예: nuget.org)를 나열합니다. 이 패키지는 몇 분 정도 걸릴 수 있습니다.

Screenshot that shows the Package Manager Console stop control.

패키지 찾기

기본 원본에서 패키지를 찾으려면 Find-Package를 사용합니다.

  • 특정 키워드(keyword) 포함된 패키지를 찾아 나열하려면 다음을 수행합니다.

    Find-Package <keyword1>
    Find-Package <keyword2>
    
  • 이름이 문자열로 시작하는 패키지를 찾아 나열하려면 다음을 수행합니다.

    Find-Package <string> -StartWith
    
  • 기본적으로 Find-Package 20개의 패키지 목록을 반환합니다. 더 많은 패키지를 표시하는 데 사용합니다 -First . 예를 들어 처음 100개의 패키지를 표시하려면 다음을 사용합니다.

    Find-Package <keyword> -First 100
    
  • 특정 패키지의 모든 버전을 나열하려면 다음을 수행합니다.

    Find-Package <PackageName> -AllVersions -ExactMatch
    

패키지 설치

기본 프로젝트에 패키지를 설치하려면 .를 사용합니다 Install-Package <PackageName>. Install-Package 콘솔 명령은 다음 작업을 수행합니다.

  • NuGet 패키지가 설치되면 어떻게 되는지에 대한 단계를 수행합니다.
  • 묵시적 규약을 사용하여 콘솔 창에 적용 가능한 사용 조건을 표시합니다. 약관에 동의하지 않는 경우 패키지를 제거해야 합니다.
  • 프로젝트 파일 및 참조 노드 아래의 솔루션 탐색기 패키지에 대한 참조를 추가합니다. 프로젝트 파일의 변경 내용을 보려면 먼저 프로젝트를 저장해야 합니다.

기본적으로 Install-Package 콘솔 창에서 지정하는 기본 프로젝트에 패키지를 추가합니다. 기본값이 아닌 프로젝트에 패키지를 추가하려면 이 -ProjectName 옵션을 사용합니다. 예를 들어 기본 UtilitiesLib 이 아닌 프로젝트에 패키지를 추가 Elmah.MVC 하려면 다음 명령을 실행합니다.

Install-Package Elmah.MVC -ProjectName UtilitiesLib

패키지 제거

기본 프로젝트에서 패키지를 제거하려면 .를 사용합니다 Uninstall-Package <PackageName>. 패키지 이름을 찾아야 하는 경우 Get-Package를 사용하여 기본 프로젝트에 설치된 모든 패키지를 확인합니다.

Uninstall-Package 는 다음 작업을 수행합니다.

  • 프로젝트 및 모든 관리 형식에서 패키지에 대한 참조를 제거합니다. 참조가 더 이상 솔루션 탐색기에 표시되지 않습니다. bin 폴더에서 참조를 제거하려면 프로젝트를 다시 빌드해야 할 수 있습니다.
  • app.config 또는 web.config패키지를 설치하는 모든 변경 내용을 반대로 바꿉니다.
  • 나머지 패키지에서 해당 종속성을 사용하지 않는 경우 이전에 설치된 종속성을 제거합니다.

패키지 및 사용되지 않는 모든 종속성을 제거하려면 다음을 실행합니다.

Uninstall-Package <PackageName> -RemoveDependencies

다른 패키지가 사용하는 경우에도 패키지를 제거하려면 다음을 실행합니다.

Uninstall-Package <PackageName> -Force

패키지 업데이트

패키지를 업데이트하려면 Get-Package 및 Update-Package를 사용합니다. 다음 명령을 실행할 수 있습니다.

  • 설치된 패키지에 사용할 수 있는 최신 버전이 있는지 검사:

    Get-Package -updates
    
  • 특정 패키지를 업데이트하려면 다음을 수행합니다.

    Update-Package <PackageName>
    
  • 프로젝트의 모든 패키지를 업데이트하려면 다음을 수행합니다.

    Update-Package -ProjectName <ProjectName>
    
  • 솔루션의 모든 패키지를 업데이트하려면 다음을 수행합니다.

    Update-Package
    

콘솔에서 NuGet CLI 사용

NuGet CLI사용하여 대부분의 콘솔 작업을 수행할 수도 있습니다. 그러나 PowerShell 콘솔 명령은 Visual Studio 저장된 프로젝트 및 솔루션의 컨텍스트 내에서 작동하며, 동일한 NuGet CLI 명령보다 더 많은 작업을 수행하는 경우가 많습니다. 예를 들어 패키지를 Install-Package 설치하면 프로젝트 파일에 대한 참조가 추가되지만 NuGet CLI 명령은 그렇지 않습니다. 이러한 이유로 Visual Studio에서 작업하는 개발자는 일반적으로 NuGet CLI 대신 콘솔 명령을 사용하는 것을 선호합니다.

패키지 관리자 콘솔에서 NuGet CLI 명령을 사용하려면 NuGet.CommandLine 패키지를 설치합니다.

Install-Package NuGet.CommandLine

이전 명령은 최신 버전의 NuGet CLI를 설치합니다. 특정 버전을 설치하려면 이 -Version 옵션을 사용합니다. 예를 들어 버전 4.4.1을 설치하려면 다음을 입력합니다.

Install-Package NuGet.CommandLine -Version 4.4.1

패키지를 설치한 NuGet.CommandLine 후 패키지 관리자 콘솔을 통해 모든 NuGet CLI 명령을 실행할 수 있습니다.

패키지 관리자 콘솔 확장

일부 패키지는 콘솔에 대한 새 명령을 설치합니다. 예를 들어 MvcScaffolding ASP.NET MVC 컨트롤러 및 뷰를 생성하는 다음과 같은 Scaffold명령을 만듭니다.

Screenshot that shows NuGet CLI commands available after installing the NuGet.CommandLine package.

NuGet PowerShell 프로필 설정

모든 PowerShell 컨텍스트에서 일반적으로 사용되는 명령을 사용할 수 있도록 PowerShell 프로필을 만들 수 있으므로 세션 간에 PowerShell 설정이 손실되지 않습니다. NuGet은 일반적으로 %UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1에서 NuGet 관련 프로필을 지원합니다.

사용자 프로필 위치를 찾으려면 콘솔에 다음을 입력 $profile 합니다.

$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1

프로필이 해당 위치에 있는지 여부를 확인하려면 다음을 입력합니다 test-path $profile. 명령이 반환 False되는 경우 해당 위치에 지정된 이름을 가진 프로필을 만들어야 합니다. 자세한 내용은 Windows PowerShell 프로필을 참조 하세요.

다음 단계