Razor クラス ライブラリをパッケージ化する
- 3 分
多くの場合、実行する必要があるタスクは、他の開発者が再利用するためにライブラリをパッケージ化することです。 NuGet パッケージを使用すると、任意の場所の開発者がアプリケーションのすべての .NET 参照を取得して適切に構成するのが簡単になります。
前のユニットでは、モーダル ダイアログ コンポーネントをビルドし、独自のアプリケーションで使用しました。 次に、他のアプリケーションで再利用します。
このユニットでは、Razor クラス ライブラリを NuGet パッケージとして構成するために必要な手順について説明します。 また、NuGet.org、GitHub リポジトリなどのパッケージ リポジトリ サービスを使用して、配布用にライブラリをパッケージ化する方法についても説明します。
NuGet パッケージ用に Razor クラス ライブラリを構成する
.NET エコシステムを使用すると、他の開発者がコンポーネントを識別して使用するために必要なプロパティを簡単に定義できます。 これらのプロパティはすべて、Razor クラス ライブラリのプロジェクト ファイル (*.csproj) で定義して、ライブラリと共に移動することができます。 その後、ライブラリが更新されると、プロパティが適切に更新されます。
Visual Studio プロジェクトの [プロパティ - パッケージ] ダイアログでパッケージを識別するフィールドを構成することも、*.csproj ファイルに直接エントリを作成することもできます。
パッケージの作成に必要な 4 つのフィールドは次のとおりです。
| フィールド | 説明 | 既定値 |
|---|---|---|
| PackageId | NuGet リポジトリ全体で一意のパッケージ識別子。 | AssemblyName ライブラリの |
| バージョン | Major.Minor.Patch[-Suffix] という形式の特定のバージョン番号。-Suffix はプレリリース バージョンを必要に応じて定義します。 | 1.0.0 |
| 作者 | パッケージの作成者。 | 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 でプロジェクトを右クリックして Pack コマンドを選択するか、プロジェクト フォルダーで NuGet パッケージを生成できます。
dotnet pack
この dotnet pack コマンドは、PackageID とバージョン番号を含むパッケージを生成し、標準のプロジェクト ビルド出力フォルダーに配置します。