dotnet add package
이 문서의 적용 대상: ✔️ .NET Core 3.1 SDK 이상 버전
이름
dotnet add package
- 프로젝트 파일에 패키지 참조를 추가하거나 업데이트합니다.
개요
dotnet add [<PROJECT>] package <PACKAGE_NAME>
[-f|--framework <FRAMEWORK>] [--interactive]
[-n|--no-restore] [--package-directory <PACKAGE_DIRECTORY>]
[--prerelease] [-s|--source <SOURCE>] [-v|--version <VERSION>]
dotnet add package -h|--help
설명
dotnet add package
명령은 프로젝트 파일에서 패키지 참조를 추가하거나 업데이트하는 편리한 옵션을 제공합니다. 명령을 실행하면 패키지가 프로젝트의 프레임워크와 호환되는지 확인하기 위한 호환성 검사가 수행됩니다. 검사에 통과하고 패키지가 프로젝트 파일에서 참조되지 않으면 <PackageReference>
요소가 프로젝트 파일에 추가됩니다. 검사에 통과하고 패키지가 이미 프로젝트 파일에서 참조되는 경우 <PackageReference>
요소가 최신 호환 버전으로 업데이트됩니다. 프로젝트 파일이 업데이트된 후 dotnet restore가 실행됩니다.
예를 들어 Microsoft.EntityFrameworkCore
를 ToDo.csproj에 추가하면 다음 예제와 유사한 출력이 생성됩니다.
Determining projects to restore...
Writing C:\Users\username\AppData\Local\Temp\tmp24A8.tmp
info : Adding PackageReference for package 'Microsoft.EntityFrameworkCore' into project 'C:\ToDo\ToDo.csproj'.
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/index.json
info : GET https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/0.0.1-alpha/3.1.3.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/3.1.4/7.0.0-preview.2.22153.1.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/7.0.0-preview.3.22175.1/7.0.0-preview.3.22175.1.json
info : NotFound https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json 257ms
info : Restoring packages for C:\ToDo\ToDo.csproj...
info : Package 'Microsoft.EntityFrameworkCore' is compatible with all the specified frameworks in project 'C:\ToDo\ToDo.csproj'.
info : PackageReference for package 'Microsoft.EntityFrameworkCore' version '6.0.4' added to file 'C:\ToDo\ToDo.csproj'.
info : Writing assets file to disk. Path: C:\ToDo\obj\project.assets.json
log : Restored C:\ToDo\ToDo.csproj (in 171 ms).
이제 ToDo.csproj 파일에 참조되는 패키지에 대한 <PackageReference>
요소가 포함됩니다.
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
프로젝트가 CPM(Central Package Management) <PackageVersion>
에 온보딩된 경우 해당 요소가 Directory.Packages.props file
추가/업데이트되고 <PackageReference>
요소가 프로젝트 파일에 추가됩니다.
현재 지원되는 시나리오는 다음과 같습니다. 이러한 예제에서는 최신 버전 Microsoft.EntityFrameworkCore
이 6.0.4라고 가정합니다. CPM과 관련된 추가 시나리오는 이 디자인 사양에 설명되어 있습니다.
시나리오 1: <PackageReference>
프로젝트 파일에 없거나, <PackageVersion>
요소가 존재하지 Directory.Packages.props file
않으며, 버전 인수가 명령줄에서 전달되지 않습니다.
실행되는 CLI 명령: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore
<PackageVersion>
요소가 .에 추가됩니다Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
<PackageReference>
요소가 프로젝트 파일에 추가됩니다.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
시나리오 2: <PackageReference>
프로젝트 파일에 없거나, <PackageVersion>
요소가 존재하지 Directory.Packages.props file
않으며, 버전 인수가 명령줄에서 전달됩니다.
실행되는 CLI 명령: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore --version 5.0.4
<PackageVersion>
요소가 .에 추가됩니다Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
<PackageReference>
요소가 프로젝트 파일에 추가됩니다.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
시나리오 3: <PackageReference>
프로젝트 파일에 존재하지 않고 요소가 <PackageVersion>
존재 Directory.Packages.props file
하며 버전 인수가 명령줄에서 전달되지 않습니다.
실행되는 CLI 명령: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore
<PackageVersion>
요소가 .에 추가됩니다Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
<PackageReference>
요소가 프로젝트 파일에 추가됩니다.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
시나리오 4: <PackageReference>
프로젝트 파일에 존재하지 않고 요소가 <PackageVersion>
존재 Directory.Packages.props file
하며 버전 인수가 명령줄에서 전달됩니다.
실행되는 CLI 명령: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore --version 5.0.4
<PackageVersion>
요소가 .에 추가됩니다Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
<PackageReference>
요소가 프로젝트 파일에 추가됩니다.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
암시적 복원
dotnet new
, dotnet build
, dotnet run
, dotnet test
, dotnet publish
및 dotnet pack
등 복원이 필요한 모든 명령에 의해 암시적으로 실행되므로 dotnet restore
를 실행할 필요가 없습니다. 암시적 복원을 사용하지 않으려면 --no-restore
옵션을 사용합니다.
dotnet restore
명령은 Azure DevOps Services의 연속 통합 빌드 또는 복원 발생 시점을 명시적으로 제어해야 하는 빌드 시스템과 같이 명시적으로 복원이 가능한 특정 시나리오에서 여전히 유용합니다.
NuGet 피드를 관리하는 방법에 대한 자세한 내용은 dotnet restore
설명서를 참조하세요.
인수
PROJECT
프로젝트 파일을 지정합니다. 지정하지 않으면 이 명령은 현재 디렉터리에서 검색합니다.
PACKAGE_NAME
추가할 패키지 참조입니다.
옵션
-f|--framework <FRAMEWORK>
특정 프레임워크를 대상으로 하는 경우에만 패키지 참조를 추가합니다.
-?|-h|--help
명령을 사용하는 방법에 대한 설명을 출력합니다.
--interactive
명령이 중지되고 사용자 입력 또는 작업을 대기할 수 있도록 허용합니다. 예를 들어 인증을 완료합니다.
-n|--no-restore
복원 미리 보기 및 호환성 검사를 수행하지 않고 패키지 참조를 추가합니다.
--package-directory <PACKAGE_DIRECTORY>
패키지를 복원할 디렉터리입니다. 기본 패키지 복원 위치는 Windows에서는
%userprofile%\.nuget\packages
이고, macOS 및 Linux에서는~/.nuget/packages
입니다. 자세한 내용은 NuGet에서 글로벌 패키지, 캐시 및 임시 폴더 관리를 참조하세요.--prerelease
시험판 패키지를 설치할 수 있습니다. .NET Core 5 SDK부터 사용할 수 있습니다.
-s|--source <SOURCE>
복원 작업 중에 사용할 NuGet 패키지 소스의 URI입니다.
-v|--version <VERSION>
패키지의 버전입니다. NuGet 패키지 버전 관리를 참조하세요.
예제
Microsoft.EntityFrameworkCore
NuGet 패키지를 프로젝트에 추가합니다.dotnet add package Microsoft.EntityFrameworkCore
특정 버전의 패키지를 프로젝트에 추가합니다.
dotnet add ToDo.csproj package Microsoft.Azure.DocumentDB.Core -v 1.0.0
특정 NuGet 소스를 사용하여 패키지를 추가합니다.
dotnet add package Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
참고 항목
.NET