与.NET Standard 1.4等效的Environment.MachineName

时间:2017-05-14 08:05:58

标签: c# .net .net-standard computer-name

我正在创建一个将在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机器)

1 个答案:

答案 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")