rksoftware

Visual Studio とか C# とかが好きです

NuGet パッケージのプロパティ (パッケージの情報) を設定する

nuget パッケージには必須のプロパティ情報のほかにも多くの情報が設定できます。
特に Readme やソースコードのリポジトリなどは設定されているとうれしいですね。

設定は .csproj ファイルに書けば OK です。シンプルでわかりやすくていいですね。

■ 実例

どの項目がどんな情報といった定義的な話よりも、実例の .csproj と各場所での情報の見え方を挙げた方がわかりやすいと思います。
というわけで実例です。

次のリポジトリで作っている dotnet tool の例です。

■ ソース

.csproj

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

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net6.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <AssemblyName>Rksoftware.$(MSBuildProjectName)</AssemblyName>
        <DebugType>none</DebugType>

        <PackAsTool>true</PackAsTool>
        <ToolCommandName>DotNetToolUpdateCheck</ToolCommandName>
        <PackageOutputPath>./nupkg</PackageOutputPath>
        <PackageLicenseFile>LICENSE</PackageLicenseFile>
        <PackageId>$(AssemblyName)</PackageId>
        <Authors>Rksoftware</Authors>
        <RootNamespace>Rksoftware.$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace>
        <AssemblyVersion></AssemblyVersion>
        <Version>$(VersionPrefix)0.1.1</Version>
        <DebugType>none</DebugType>

        <Title>dotnet tool update checker</Title>
        <Description>This tool checks for the latest version of installed packages.</Description>
        <Summary>This tool checks for the latest version of installed packages.</Summary>
        <PackageProjectUrl>https://github.com/m-ishizaki/DotNetToolUpdateChecker</PackageProjectUrl>
        <RepositoryUrl>https://github.com/m-ishizaki/DotNetToolUpdateChecker</RepositoryUrl>
        <RepositoryType>git</RepositoryType>
        <PackageReadmeFile>README.md</PackageReadmeFile>
        <Copyright>m-ishizaki</Copyright>
        <PackageReleaseNotes>Added properties for nuget.</PackageReleaseNotes>

    </PropertyGroup>

    <ItemGroup>
        <None Include="..\..\LICENSE" Pack="true" PackagePath="" />
    </ItemGroup>

    <ItemGroup>
        <None Update="README.md">
            <Pack>True</Pack>
            <PackagePath>\</PackagePath>
        </None>
    </ItemGroup>
...(略)...

■ 各所での見え方

README.md

f:id:rksoftware:20211217004259p:plain

nuget の画面

f:id:rksoftware:20211217004041p:plain
f:id:rksoftware:20211217004400p:plain

Visual Studio

f:id:rksoftware:20211217004627p:plain

分かりやすいですね。