設定 NuGet 套件類型

封裝可以再標記一個 套件類型 ,以指出其預定用途。

已知套件類型

  • Dependency 類型套件會將建置或執行階段資產新增至程式庫和應用程式,並且可以安裝至任何專案類型 (假設它們相容)。

  • DotnetTool類型套件是可由 dotnet CLI 安裝的 .NET 工具。

  • MSBuildSdk 類型套件是 MSBuild 專案 SDK ,可簡化使用軟體開發工具包。

  • Template 類型套件提供 自定義範本 ,可用來建立檔案或專案,例如應用程式、服務、工具或類別庫。

未標示類型的套件 (包含使用舊版 NuGet 所建立的所有套件) 預設為 Dependency 類型。

注意

NuGet 3.5 已新增套件類型的支援。 如果您不需要自定義套件類型,最好 不要 明確設定封裝類型。 未指定類型時,NuGet 預設為 Dependency 類型。

自定義套件類型

如果套件的使用不符合 已知的封裝類型,您可以使用一或多個自定義套件類型來標示您的套件。

例如,假設應用程式的客戶 Contoso 可以安裝擴充功能。 應用程式可能需要延伸模組作者使用自定義套件類型 ContosoExtension 來識別其套件,作為遵循必要慣例的適當延伸模組。

警告

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>

封裝類型字串的格式與套件識別碼完全相同。 也就是說,封裝類型是不區分大小寫的字串,符合至少一個字元且最多 100 個字元的正則表達式 ^\w+([_.-]\w+)*$

如果提供,則套件類型版本是 Version 字串。 套件類型版本是選擇性的,預設為 0.0