Help us understand the problem. What is going on with this article?

【Nuget】C#の自作ライブラリをNugetパッケージ化する方法

社内業務改善において、WindowsデスクトップアプリケーションをC#で開発することは結構有用だと思っています。

その中で、色々な社内アプリケーションで共通部分の設計っていっぱいあるよなあってよく感じています。

例えば

  • 社員番号から個人情報(氏名・IDなど)を入手
  • 社内メールを配信
  • 部品リストの操作

等。

こういう同じような機能を社内の色々な人が開発するのは無駄なので、C#で自作したライブラリをNugetで配布する方法をメモしておきます。

Nuget

Visual Studioにおけるパッケージ管理ツール。
インストールしたライブラリが依存しているライブラリも自動でインストールしてくれるので便利。

用意するもの

ビルドしたライブラリをNugetパッケージ化するソフト。コマンドラインから使用します。

  • ビルドした.NETFrameworkライブラリ

当たり前ですが。

準備

  • nuspecファイルを生成

Nugetパッケージ化はプロジェクトと同名の.nuspecファイルに基づいて行われますので、nuspecファイルを用意します。その正体はxmlファイル。
下記のコマンドで生成します。

nuget spec

すると、Package.nuspecというファイルが生成されます。
中身はこんなの

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Package</id>
    <version>1.0.0</version>
    <authors></authors>
    <owners></owners>
    <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
    <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
    <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package description</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2019</copyright>
    <tags>Tag1 Tag2</tags>
    <dependencies>
      <dependency id="SampleDependency" version="1.0" />
    </dependencies>
  </metadata>
</package>

内容のリファレンスはこちら

このファイル名を「プロジェクト名.nuspec」にして、プロジェクトのルートフォルダに入れておきます。(ソリューションに登録しておくと楽かも?)

発行する

発行するのは下記コマンド

nuget pack [パッケージ化するディレクトリ]

Nugetパッケージが生成されるので、無事発行完了。

おまけ

社内でNuget配布するには?

ファイル共有サーバーのどのフォルダをNuget用のフォルダにするかを社内で決めておけば十分です。
Visual Studioのパッケージソースでそのフォルダを登録しておけば、Nugetがいい感じに一覧・バージョン表示してくれるので、発行したパッケージをホイホイそのフォルダにぶち込んでいけばOK。

ronkabu
転職しました。 ADASのシステム開発やってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした