다음을 통해 공유


NuGet 패키지 유형 설정

패키지는 의도한 용도를 나타내기 위해 하나 이상의 패키지 형식 으로 표시될 수 있습니다.

알려진 패키지 형식

  • Dependency 형식 패키지는 라이브러리 및 애플리케이션에 빌드 또는 런타임 자산을 추가하며 모든 프로젝트 형식(호환되는 것으로 가정)에 설치할 수 있습니다.

  • DotnetTool 형식 패키지는 dotnet CLI에서 설치할 수 있는 .NET 도구입니다.

  • MSBuildSdk 형식 패키지는 소프트웨어 개발 키트를 사용하여 간소화하는 MSBuild 프로젝트 SDK 입니다.

  • Template 형식 패키지는 앱, 서비스, 도구 또는 클래스 라이브러리와 같은 파일 또는 프로젝트를 만드는 데 사용할 수 있는 사용자 지정 템플릿 을 제공합니다.

  • McpServer 형식 패키지에는 MCP 서버가 포함됩니다. 로컬 MCP 서버가 .NET 도구로 배포되므로 이 패키지 형식은 항상 패키지 형식과 함께 DotnetTool 제공됩니다. MCP 서버 및 NuGet에 대한 자세한 내용은 NuGet 패키지의 MCP 서버를 참조하세요.

이전 버전의 NuGet으로 만든 모든 패키지를 포함하여 형식으로 표시되지 않은 패키지는 기본적으로 형식으로 설정 Dependency 됩니다.

Note

패키지 유형에 대한 지원이 NuGet 3.5에 추가되었습니다. 사용자 지정 패키지 형식이 필요하지 않은 경우 패키지 유형을 명시적으로 설정 하지 않는 것이 가장 좋습니다. NuGet은 형식이 Dependency 지정되지 않은 경우 기본적으로 형식으로 설정됩니다.

사용자 지정 패키지 형식

사용이 알려진 패키지 형식에 맞지 않는 경우 하나 이상의 사용자 지정 패키지 형식으로 패키지를 표시할 수 있습니다.

예를 들어 앱 고객이 확장을 설치할 Contoso 수 있다고 상상해 보십시오. 앱에서 확장 작성자가 사용자 지정 패키지 유형을 ContosoExtension 사용하여 해당 패키지를 필요한 규칙을 따르는 적절한 확장으로 식별하도록 요구할 수 있습니다.

Warning

사용자 지정 패키지 형식의 패키지는 Visual Studio 또는 nuget.exe설치할 수 없습니다. 자세한 내용은 NuGet/Home#10468 을 참조하세요.

패키지 형식은 프로젝트 파일()에서 설정할 수 있습니다..csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    
    <PackageType>ContosoExtension</PackageType>
  </PropertyGroup>

</Project>

원하는 용도가 여러 개 있는 패키지는 구분 기호를 사용하여 ; 여러 패키지 형식으로 표시할 수 있습니다.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    
    <PackageType>PackageType1;PackageType2</PackageType>
  </PropertyGroup>

</Project>

패키지 형식과 Version 해당 문자열 사이의 구분 기호를 , 사용하여 패키지 형식의 버전을 지정할 수 있습니다.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    
    <PackageType>PackageType1, 1.0.0.0;PackageType2</PackageType>
  </PropertyGroup>

</Project>

패키지 형식 문자열의 형식은 패키지 ID와 똑같습니다. 즉, 패키지 형식은 하나 이상의 문자와 최대 100자를 갖는 정규식 ^\w+([_.-]\w+)*$ 과 일치하는 대/소문자를 구분하지 않는 문자열입니다.

제공된 경우 패키지 형식 버전은 문자열입니다 Version . 패키지 형식 버전은 선택 사항이며 기본값은 .입니다 0.0.