我正在创建一个将在WPF项目和.NET Core项目中使用的类库。我正在尝试使用我的应用程序获取机器的名称。
在.NET Core和WPF应用程序中,我都可以使用Environment.MachineName
值。但是在我的.NET标准类库中我不能。
我收到以下错误:
'Environment'不包含'MachineName'的定义
我尝试了this question中建议的答案,但是当我尝试添加System.Windows.Networking.Connectivity.NetworkInformation.GetHostNames()
时,我收到以下错误:
当前上下文中不存在名称“Windows”
我认为这仅适用于Windows 10 Universal Apps?无论哪种方式,我宁愿采用独立于平台的方式获取机器名称(这种方式似乎只适用于Windows机器)
答案 0 :(得分:35)
Environment.MachineName
仅适用于.NET Standard> 1.5使用System.Runtime.Extensions
NuGet包(在.NET Standard 2.0中,它自动可用)。
作为替代方案,您可以通过引用System.Net.Dns.GetHostName()
NuGet包使用System.Net.NameResolution
或通过以下方式解析COMPUTERNAME
(win)或HOSTNAME
(* nix)环境变量Environment.GetEnvironmentVariable("COMPUTERNAME")
。