3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Blazor + Electron.NETでファイル操作を行いたいときの注意点

Last updated at Posted at 2021-03-08

はじめに

以前Blazor + Electron.NETを試してみたという記事でBlazorで作成したWebアプリを簡単にデスクトップアプリとして扱えるようになることを紹介しました。その記事の最後にElectronのファイルダイアログを操作することができるということと、参考リンクの紹介をしました。参考リンクには書かれていない注意点があったため、今回はそのことについてまとめます。実際のファイル操作の実装は参考リンクが分かりやすいので、そちらを参照ください。

Electronのファイルダイアログ操作について

Electronでローカルファイルの選択ダイアログを実装するときには、dialogモジュールのshowOpenDialog関数を用います。詳しくはこちら
Electronのdialogモジュールなどのリモートモジュールを使う際にWebPrefarenceのenableRemoteModuleというプロパティをtrueに設定しないと利用できないそうです。詳しくはこちら

Elecrron.NETを使用する場合のenableRemoteModuleプロパティの設定

Electron.NETを使用する際、この設定ができるAPIが公開されているのは最新のElectronNET.APIのみでした(2021/2/26に確認した時点でV11.5.1)。startup.csファイルでElectronのウィンドウを開く処理を行う際に、WebPreferencesの設定を行うことができます。

var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
{
	WebPreferences = new WebPreferences() { EnableRemoteModule = true },
});

ElectronNET.APIの最新バージョンと対応するBlazorプロジェクトのフレームワークのバージョンについて

ElectronNET.APIの最新バージョンは.NET5に対応しています。Blazorのサーバーアプリのプロジェクトを作成した段階では、プロジェクトの対象のフレームワークが.NETCore 3.1で作成されるのではないかと思います。その状態でElectron.NETの最新バージョンをインストールしようとすると、.NETCore3.1と互換性が無いという旨のエラーが出てインストールできないためご注意ください。

また、Blazorのサーバーアプリではなく、Blazor WASMを使用することができないかも試しました。ElectronNET.APIをインストールしようとすると、上記と同様にBlazor WASMの対象フレームワークである.NETStandard2.1と互換性が無いという旨のエラーがでてインストールできないです。(ElectronNET.APIの以前のバージョンであっても.NETCoreにしか対応していないため、現状Blazor WASMとの組み合わせができないみたいです。)

したがって、現状Blazor + Electron.NETを使用してファイル操作も行うアプリの開発したい場合は
Blazorのサーバーアプリで対象フレームワークを.NET5にして、ElectronNET.APIの最新バージョンを使用するのがよさそうです。

さいごに

少々細かい話ではありましたが、私が詰まった点でしたのでまとめした。
最後までお読みいただきありがとうございました。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?