NuGet パッケージを作成する

完了

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

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

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

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

まず、NuGet パッケージとして展開用にパッケージ化できるプロパティを使用して FirstClassLibrary プロジェクトを更新します。

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

  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 クラス ライブラリを "My.FirstClassLibrary" <PackageId> 持ち、 <Version> 0.1.0 と定義します。 これらの 2 つのフィールドに、独自の名前と会社名を入力します。

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

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

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

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

dotnet pack

このコマンドは、 My.FirstClassLibrary.0.1.0.nupkg という名前のファイルを bin/Release フォルダーに書き込みます。

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

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

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

次の手順 では、 一般的な構成については説明しません。 参照するアプリケーションと同じフォルダーまたはソリューションに存在するライブラリ プロジェクトは、前の演習で説明したように、プロジェクトを直接参照できます。

  1. Visual Studio で MyBlazorApp プロジェクト名をダブルクリックするか、Visual Studio Code でファイルを開いて 、MyBlazorApp.csproj ファイルを開きます。

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

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

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

    dotnet add package My.FirstClassLibrary -s ../FirstClassLibrary/bin/Release
    

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

作業を確認する

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

さあ、調べてみましょう。

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

    dotnet run

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

    [マイ ファースト モーダル] ダイアログ は表示されますか? そうであれば、お疲れさまでした。 FirstClassLibrary プロジェクトが正常にパッケージ化され、配置されました。 すべての場所のアプリケーションで、新しく作成した NuGet パッケージを参照することで、モーダル ウィンドウ コンポーネントを使用できるようになりました。