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