이 문서의 적용 대상: ✔️ .NET Core 3.1 SDK 이상 버전
이름
dotnet package add
- 프로젝트 파일에서 패키지 참조를 추가하거나 업데이트합니다.
비고
.NET 9 SDK 이하를 사용하는 경우 대신 "동사 우선" 양식(dotnet add package
)을 사용합니다. "명사 우선" 양식은 .NET 10에서 도입되었습니다. 자세한 내용은 보다 일관된 명령 순서를 참조하세요.
개요
dotnet package add <PACKAGE_NAME>
[-f|--framework <FRAMEWORK>] [--interactive] [--project <PROJECT>]
[-n|--no-restore] [--package-directory <PACKAGE_DIRECTORY>]
[--prerelease] [-s|--source <SOURCE>] [-v|--version <VERSION>]
dotnet package add -h|--help
설명
이 dotnet package add
명령은 프로젝트 파일에서 패키지 참조를 추가하거나 업데이트하는 편리한 옵션을 제공합니다. 명령을 실행할 때 패키지가 프로젝트의 프레임워크와 호환되는지 확인하기 위한 호환성 검사가 있습니다. 확인이 통과하고 패키지가 프로젝트 파일 <PackageReference>
에서 참조되지 않으면 요소가 프로젝트 파일에 추가됩니다. 확인이 통과하고 패키지가 프로젝트 파일 <PackageReference>
에서 이미 참조된 경우 요소는 호환되는 최신 버전으로 업데이트됩니다. 프로젝트 파일이 업데이트되면 dotnet 복원 이 실행됩니다.
예를 들어 ToDo.csproj에 추가 Microsoft.EntityFrameworkCore
하면 다음 예제와 유사한 출력이 생성됩니다.
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 package add Microsoft.EntityFrameworkCore --project ToDo.csproj
<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 package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj
<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 package add Microsoft.EntityFrameworkCore --project ToDo.csproj
<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 package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj
<PackageVersion>
요소가 .에 추가됩니다Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
<PackageReference>
요소가 프로젝트 파일에 추가됩니다.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
암시적 복원
dotnet restore
, dotnet new
, dotnet build
, dotnet run
, dotnet test
및 dotnet publish
같은 복원이 필요한 모든 명령에서 암시적으로 실행되므로 dotnet pack
실행할 필요가 없습니다. 암시적 복원을 사용하지 않도록 설정하려면 --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>
패키지를 복원할 디렉터리입니다. 기본 패키지 복원 위치는
%userprofile%\.nuget\packages
Windows 및~/.nuget/packages
macOS 및 Linux에 있습니다. 자세한 내용은 NuGet에서 전역 패키지, 캐시 및 임시 폴더 관리를 참조하세요.--prerelease
시험판 패키지를 설치할 수 있습니다. .NET Core 5 SDK 이후 사용 가능
-s|--source <SOURCE>
복원 작업 중에 사용할 NuGet 패키지 원본의 URI입니다.
-v|--version <VERSION>
패키지의 버전입니다. NuGet 패키지 버전 관리를 참조하세요.
예시
프로젝트에 NuGet 패키지를 추가
Microsoft.EntityFrameworkCore
합니다.dotnet package add Microsoft.EntityFrameworkCore
프로젝트에 특정 버전의 패키지를 추가합니다.
dotnet package add Microsoft.Azure.DocumentDB.Core -v 1.0.0 --project ToDo.csproj
특정 NuGet 원본을 사용하여 패키지를 추가합니다.
dotnet package add Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
참고하십시오
.NET