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 とバージョン番号を持つパッケージが生成され、標準のプロジェクト ビルド出力フォルダーに配置されます。

自分の知識をチェックする

1.

PackageId の既定値は、どのプロジェクト プロパティですか?