問題意識 §
.NET5でWindowsで起動された時のみレジストリを読みに行くプログラムは可能か?
具体的には、Ubuntuの.NET5でレジストリを読みに行ったら何が起こるかを調べた。
TFMは.net5.0-windowsではなく.net5.0とする。
サンプルソース §
Microsoft.Win32.Registryをnugetに追加済み
using Microsoft.Win32;
using System;
class Program
{
static void Main(string[] args)
{
RegistryKey regkey = Registry.CurrentUser.OpenSubKey("test", true);
Console.WriteLine($"Hello World! {regkey != null}");
}
}
結果 §
PlatformNotSupportedExceptoionになる。
考察 §
Windowsで起動された時のみレジストリを読みに行く機種依存性のないプログラムは作成できそうである。例外が起きたときは他の方法で情報を読み書きするようにコーディングすれば良い。そうすると、レジストリに既存情報があるときはそれが読める。