Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@ronkabu

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

More than 1 year has passed since last update.

社内業務改善において、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。

4
Help us understand the problem. What is going on with this article?
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
ronkabu
転職しました。 ADASのシステム開発やってます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?