NuGet パッケージを作成する
Razor クラス ライブラリをパッケージ化すると、他の Blazor プロジェクトが参照できるバイナリ 成果物があり、その中のコンポーネントをそれらのプロジェクトで使用できます。
前のユニットでは、Blazor アプリケーション用のモーダル ダイアログ ウィンドウを提供するモーダル コンポーネントを含む Razor クラス ライブラリを作成しました。 他のアプリケーションで使用するためにそのコンポーネントを共有するには、パッケージ化して、他の開発者が取得できるリポジトリまたはフォルダーに配置する必要があります。
このユニットでは、そのプロジェクトを更新し、NuGet パッケージを生成します。 最後に、その NuGet パッケージを Blazor サーバー アプリケーションにデプロイします。
FirstClassLibrary にパッケージ プロパティを追加する
まず、NuGet パッケージとして展開用にパッケージ化できるプロパティを使用して FirstClassLibrary プロジェクトを更新します。
FirstClassLibrary プロジェクトのプロジェクト ファイルを開きます。 Visual Studio ソリューション エクスプローラーでプロジェクトをダブルクリックするか、Visual Studio Code で FirstClassLibrary.csproj ファイルを開きます。
ファイルの先頭付近で、
<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 パッケージへの参照を追加します。
次の手順 では、 一般的な構成については説明しません。 参照するアプリケーションと同じフォルダーまたはソリューションに存在するライブラリ プロジェクトは、前の演習で説明したように、プロジェクトを直接参照できます。
Visual Studio で MyBlazorApp プロジェクト名をダブルクリックするか、Visual Studio Code でファイルを開いて 、MyBlazorApp.csproj ファイルを開きます。
MyBlazorApp.csproj ファイルで、次の行を削除します。
<ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />MyBlazorApp.csproj と同じフォルダーで、次のコマンドを実行します。
dotnet add package My.FirstClassLibrary -s ../FirstClassLibrary/bin/Releaseこのコマンドは、前に作成した NuGet パッケージを取得し、ローカル NuGet パッケージ キャッシュにコピーをインストールし、そのパッケージへの参照を MyBlazorApp.csproj ファイルに追加します。
作業を確認する
新しいパッケージが正しくインストールされたか。 FirstServer アプリケーションを起動し、アプリケーションの起動時にモーダル ウィンドウを表示できますか?
さあ、調べてみましょう。
次のコマンドを実行して、Visual Studio で F5 キーを押すか MyBlazorApp フォルダーで MyBlazorApp アプリケーションを起動します。
dotnet runブラウザーで、MyBlazorApp アプリケーションのホーム ページ (
https://localhost:5000) に移動します。[マイ ファースト モーダル] ダイアログ は表示されますか? そうであれば、お疲れさまでした。 FirstClassLibrary プロジェクトが正常にパッケージ化され、配置されました。 すべての場所のアプリケーションで、新しく作成した NuGet パッケージを参照することで、モーダル ウィンドウ コンポーネントを使用できるようになりました。