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