Electron.NETを使って.NET Core 3.0のBlazorをElectron上で動かしてみました
環境
今回の環境はこちら
作成手順
以下のコマンドでBlazorのプロジェクトを作成します。
プロジェクトにElectronNET.API
のPackageを追加します。
dotnet new blazorserver -o BlazorOnElectron cd BlazorOnElectron dotnet add package ElectronNET.API
Program.cs
とStartup.cs
に2行ずつ追加します。
Program.cs
using System; // 途中省略 + using ElectronNET.API; namespace BlazorOnElectron { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { + webBuilder.UseElectron(args); webBuilder.UseStartup<Startup>(); }); } }
Startup.cs
using System; // 途中省略 + using ElectronNET.API; namespace BlazorOnElectron { public class Startup { // 途中省略 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 途中省略 app.UseEndpoints(endpoints => { endpoints.MapBlazorHub(); endpoints.MapFallbackToPage("/_Host"); }); + Electron.WindowManager.CreateWindowAsync(); } } }
ElectronNET.CLI
をインストールします。
インストール後、init
コマンドで初期化を行います。
dotnet tool install ElectronNET.CLI -g electronize init
初期化が完了するとelectron.manifest.json
が生成されるのと、
Properties\launchSettings.json
に起動用Profileの設定が追加されます。
以下のコマンドで起動します。
electronize start
おぉ~
electronize build /target win
でビルドしてみるとresources\bin
以下にBlazor一式が入る感じなんですね。
おわり
Electron + Blazorってかなり尖ってますね。。
以上です。