みなさん、こんにちは。

「.NET Core 5.0」使ってますか?最近、WEBサイト構築には「Debian」+「.NET Core 5.0」+「VSCode」という環境が最強の開発環境だと感じています。

認証が必要なWEBサイト構築にはIdentityServer4を使用していますが、これは簡単、便利な認証サーバーで、Google認証も数行のコメントを外すだけで導入することができます。(もちろん、Googleコンソールでの設定は必要ですが)

IdentityServer4のプロジェクトを作成するときは、いくつかあるテンプレートの1つを選んで作成できます。例えば「is4inmem」はUIとユーザ、さらにシンプルなクライアントを備えたプロジェクトを作成できます。これは次のようにします。

$mkdir is4inmem_test
$cd is4inmem_test
$dotnet new is4inmem
The template “IdentityServer4 with In-Memory Stores and Test Users” was created successfully.

これでプロジェクトが作成されたので、次のようにVSCodeを起動してデバッグ可能です。
$code .

ところが、デバッグ実行を開始すると、次のようなエラーに遭遇するかもしれません。
———-
ターゲット プロセスは、CoreCLR 開始イベントを発生させずに終了しました。
ターゲット プロセスが .NET Core を使用するよう構成されていることをご確認ください。
これは、ターゲット プロセスが .NET Core 上で実行されていない場合に発生する可能性があります。
プログラム ‘[5904] is4inmem_test.dll’ がコード 150 (0x96) で終了しました。
———-

これは、作成されたプロジェクトが「.net core 3」用になっている事が原因ですので、まず、プロジェクトファイルを下記のように修正します。

<TargetFramework>netcoreapp3.1</TargetFramework>

<TargetFramework>net5.0</TargetFramework>

そして「.vscode」ディレクトリをまるごと削除してから、VSCodeを再起動すれば正常にデバッグ可能です。いくつかのテンプレートでは同様の事が起きるようなので、覚えておくと慌てずに済みます。

最後に、Debian(xfce)はとても軽くていいですね。xubuntuとかもありますが、わたしは、やっぱりDebianがいいようです。みなさんもぜひお試しください。