Razor クラス ライブラリをパッケージ化する
頻繁に実行するタスクは、他の開発者が再利用できるようにライブラリをパッケージ化することです。 NuGet パッケージにすると、開発者はどこでも簡単にすべての .NET 参照を取得してアプリケーション用に適切に構成できるようになります。
前のユニットでは、モーダル ダイアログ コンポーネントをビルドし、自身のアプリケーションで使用しました。 ここでは、それを他のアプリケーションで再利用します。
このユニットでは、Razor クラス ライブラリを NuGet パッケージとして構成するために必要な手順について学習します。 NuGet.org や GitHub リポジトリなどのパッケージ リポジトリ サービスを使用して、ライブラリを配布用にパッケージ化する方法についても学習します。
NuGet パッケージにするために Razor クラス ライブラリを構成する
.NET エコシステムでは、他の開発者があなたのコンポーネントを識別して使用するために必要なプロパティを簡単に定義できます。 これらのプロパティはすべて、Razor クラス ライブラリのプロジェクト ファイル (*.csproj) で定義し、ライブラリと一緒に移動され、ライブラリの更新時に適切に更新されるようにすることができます。
Visual Studio の [プロジェクトのプロパティ] - [パッケージ] ダイアログで、パッケージを識別するフィールドを構成できます。または、*.csproj ファイルに自分で直接エントリを作成することもできます。
パッケージを作成するために必要な 4 つのフィールドは次のとおりです。
フィールド | 説明 | 既定値 |
---|---|---|
PackageId | NuGet リポジトリ全体で一意のパッケージの識別子。 | ライブラリの AssemblyName |
Version | Major.Minor.Patch[-Suffix] の形式の特定のバージョン番号。ここで、-Suffix には、必要に応じてプレリリース バージョンを定義します。 | 1.0.0 |
Authors | パッケージの作成者。 | AssemblyName |
[会社] | パッケージの作成と公開を担当する会社の名前。 | AssemblyName |
これらのフィールドの一部には既定値がありますが、会社名が MyFirstLibrary のパッケージを公開したらおかしいかもしれません。 これらの値を明示的に定義することを強くお勧めします。
直前のユニットでは、Razor クラス ライブラリの静的コンテンツが _content/[PACKAGE_ID]/
で使用可能であることを学習しましたが、ここでは PackageId
値を構成する場所を確認します。
これらの値が構成されたサンプル プロジェクト ファイルは、次のようになります。
<PropertyGroup>
<PackageId>Learn.MyFirstLibrary</PackageId>
<Version>0.1.0-alpha1</Version>
<Authors>Susan Developer, Terry Programmer</Authors>
<Company>AdventureWorks</Company>
</PropertyGroup>
プロジェクトのビルド時に、Visual Studio の [プロジェクトのプロパティ] ダイアログで [ビルドで NuGet パッケージを生成] オプションを選択するか、次に示すように他のパッケージ フィールドの横に GeneratePackageOnBuild
エントリを追加して、NuGet パッケージが生成されるように構成することもできます。
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
次のような多くのオプションのプロジェクト プロパティを構成できます。
- NuGet リポジトリでの表示に適した
Description
- 著作権の通知
- ライセンス情報
- アイコン
- プロジェクトの URL
プロパティの完全な一覧については、MSBuild パック ターゲットに関する Microsoft のドキュメントを参照してください。
ライブラリをパッケージ化する
ライブラリ構成を *.csproj ファイルに記述した後、Visual Studio で、プロジェクトを右クリックして [パック] コマンドを選択するか、プロジェクト フォルダーで次のコマンドを実行して、NuGet パッケージを生成できます。
dotnet pack
この dotnet pack
コマンドを実行すると、PackageID とバージョン番号を持つパッケージが生成され、標準のプロジェクト ビルド出力フォルダーに配置されます。