NuGet パッケージの作成

完了

Razor クラス ライブラリをパッケージ化すると、Blazor プロジェクトで参照できるバイナリ成果物が生成され、その中にあるコンポーネントをそれらのプロジェクトで使用できます。

直前のユニットでは、Blazor アプリケーション用のモーダル ダイアログ ウィンドウを提供するモーダル コンポーネントを含む Razor クラス ライブラリを作成しました。 他のアプリケーションで使用するためにそのコンポーネントを共有するには、それをパッケージ化して、他の開発者が取得できるリポジトリまたはフォルダーに配置する必要があります。

このユニットでは、そのプロジェクトを更新して NuGet パッケージを生成します。 最後に、Blazor Server アプリケーションに NuGet パッケージをデプロイします。

FirstClassLibrary にパッケージ プロパティを追加する

最初に、FirstClassLibrary プロジェクトをプロパティで更新します。これにより、NuGet パッケージとしてデプロイするためにパッケージ化できます。

  1. Visual Studio ソリューション エクスプローラーでプロジェクトをダブルクリックするか、Visual Studio Code で MyClassLibrary.csproj ファイルを開くことで、MyClassLibrary プロジェクトのプロジェクト ファイルを開きます。

  2. ファイルの上部近くの <PropertyGroup> タグがあるセクションで、終了の </PropertyGroup> タグの前に次の内容を追加します。

        <PackageId>My.FirstClassLibrary</PackageId>
        <Version>0.1.0</Version>
        <Authors>YOUR NAME</Authors>
        <Company>YOUR COMPANY NAME</Company>
        <Description>This is a Razor component library with a cool modal window component.</Description>
      </PropertyGroup>
    

    このコードにより、Razor クラス ライブラリは、<PackageId> "My.FirstClassLibrary" と <Version> 0.1.0 を持つように定義されます。 これらの 2 つのフィールドでは、独自の名前と会社名を入力します。

再利用するためにライブラリをパッケージ化する

次に、コマンド ラインで .NET コマンドを実行して Razor クラス ライブラリをパッケージ化し、ソリューションの外部の他のアプリケーションでそれを参照できるようにします。

これらの同じ手順を継続的インテグレーション プロセスで実行して、ライブラリをパッケージ化し、NuGet.org、GitHub リポジトリ、または組織が共有する別の場所にデプロイすることができます。

MyClassLibrary.csproj ファイルと同じフォルダーで、次のコマンドを実行します。

dotnet pack

このコマンドにより、My.FirstClassLibrary.0.1.0.nupkg という名前のファイルが bin/Debug フォルダーに書き込まれます。

MyBlazorServer アプリケーションに NuGet パッケージへの参照を追加する

MyBlazorServer アプリケーションの FirstClassLibrary プロジェクトは Web アプリケーションと同じフォルダー構造内にあったので、既に参照しています。

そのプロジェクト参照を解除して、前に作成した NuGet パッケージへの参照を追加します。

これらの手順は一般的な構成では "ありません"。 前の演習で見たように、参照元のアプリケーションと同じフォルダーまたはソリューションに存在するライブラリ プロジェクトでは、プロジェクトを直接参照できます。

  1. Visual Studio で MyBlazorServer プロジェクトの名前をダブルクリックするか、Visual Studio Code でそのファイルを開くことで、MyBlazorServer.csproj ファイルを開きます。

  2. MyBlazorServer.csproj ファイルで、次の行を削除します。

    <ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />

  3. MyBlazorServer.csproj と同じフォルダー内で、次のコマンドを実行します。

    dotnet add package My.FirstClassLibrary -s ..\FirstClassLibrary\bin\Debug
    

    このコマンドは、先ほど作成した NuGet パッケージを取得し、ローカル NuGet パッケージ キャッシュにコピーをインストールして、そのパッケージへの参照を MyBlazorServer.csproj ファイルに追加します。

作業を確認

新しいパッケージは正しくインストールされましたか? FirstServer アプリケーションを起動できて、アプリケーションの起動時にモーダル ウィンドウが表示されますか?

調べてみましょう。

  1. Visual Studio で F5 キーを押すか、MyBlazorServer フォルダーで次のコマンドを実行して、MyBlazorServer アプリケーションを起動します。

    dotnet run

  2. ブラウザーで、MyBlazorServer アプリケーションのホーム ページにアクセスします (https://localhost:5000)。

    [最初のモーダル ダイアログ] ダイアログ ボックスが表示されていますか? そうであれば、お疲れさまでした。 FirstClassLibrary プロジェクトを正常にパッケージ化してデプロイしました。 アプリケーションがどこにあっても、新規に作成した NuGet パッケージを参照することでモーダル ウィンドウ コンポーネントを使用できるようになりました。