LoginSignup
12
17

More than 5 years have passed since last update.

【NuGet】C#、.NETでライブラリを公開する【2019年版】

Posted at

「C#、.NETでライブラリを作って、それを公開したい」

そんなときは、NuGetを使いましょう。

NuGetはMicrosoftがサポートする.NETのコード共有メカニズムです。「nuget.org」には、100000個以上のライブラリがあるらしいです!NuGetは、Windowsだけでなく、MacやLinuxでも使えます。

やり方は公式ドキュメントにまとまっていますので、本投稿では公式ドキュメントのピックアップ、チップス、サンプルを紹介します。

公式ドキュメントピックアップ

NuGetの概要は次のドキュメントを!


dotnet CLIを使ったNuGetのライブラリの作成・公開方法をサクッと確認したい方はこちら!


NuGetのライブラリの作成・公開方法のワークフローはこちらから!


NuGetでライブラリを作成・公開するにはいくつかの方法があります。方法によって、読むべきドキュメントが異なるので注意してください。

また、NuGetのバージョンアップによっていろいろ設定方法が変更されている点に注意してください。

NuGet4.0以降では、ライブラリのためのメタデータをプロジェクトファイル(.csproj)に直接保存できます。(それより前は別のファイルを作る必要がありました)

どのような項目で設定をすればいいかは次のドキュメントを参照してください。

チップス

クイック スタート: パッケージの作成と公開 (dotnet CLI)」では最小限の設定として、次の4項目を設定するようにという指示があります。

<PackageId>AppLogger</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>

ところが、この状態でnuget.orgに公開すると次のようなライセンス関連の警告が表示されます。

スクリーンショット 2019-02-16 13.52.53.png

これはPackageLicenseExpressionを設定することで消えます。

サンプル

LinqAliasというライブラリを作成しました。こちらをサンプルとして参照してください。

以下に、LinqAliasの.csprojを示します。

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

    <PropertyGroup>
        <Title>LinqAlias</Title>
        <Description>Aliases of System.Linq extension methods.</Description>
        <AssemblyName>LinqAlias</AssemblyName>
        <Version>0.0.1.0</Version>
        <Authors>RyotaMurohoshi</Authors>
        <TargetFramework>netstandard1.0</TargetFramework>
        <PackageLicenseExpression>MIT</PackageLicenseExpression>
        <PackageProjectUrl>https://github.com/RyotaMurohoshi/LinqAlias</PackageProjectUrl>
        <RepositoryUrl>https://github.com/RyotaMurohoshi/LinqAlias</RepositoryUrl>
        <PackageTags>linq;extensions;alias</PackageTags>
        <Copyright>Copyright (c) 2019 RyotaMurohoshi</Copyright>
        <RepositoryType>git</RepositoryType>
    </PropertyGroup>

</Project>
12
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
17