WPFプロジェクトと.NET Coreプロジェクトで使用されるクラスライブラリを作成しています。アプリケーションを使用してマシンの名前を取得しようとしています。
.NET CoreとWPFアプリケーションの両方で、_Environment.MachineName
_値を使用できます。ただし、.NET標準クラスライブラリではできません。
次のエラーが表示されます。
「環境」に「マシン名」の定義が含まれていません
この質問 で答えが示唆したことをしようとしましたが、System.Windows.Networking.Connectivity.NetworkInformation.GetHostNames()
を追加しようとすると、次のエラーが表示されます。
「Windows」という名前は現在のコンテキストに存在しません
これはWindows 10 Universal Appsでのみ機能すると思いますか?どちらの方法でも、マシン名を取得するプラットフォームに依存しない方法を好むでしょう(この方法は、Windowsマシン専用です)
_Environment.MachineName
_は、_System.Runtime.Extensions
_ NuGetパッケージを使用して.NET Standard> 1.5でのみ使用できます(.NET Standard 2.0では自動的に使用可能です)。
代わりに、System.Net.Dns.GetHostName()
を_System.Net.NameResolution
_ NuGetパッケージを参照して使用するか、COMPUTERNAME
(win)またはHOSTNAME
(* nix)環境変数を解決できます。 Environment.GetEnvironmentVariable("COMPUTERNAME")
経由。