15

我正在创建一个将在 WPF 项目和 .NET Core 项目中使用的类库。我正在尝试使用我的应用程序获取机器的名称。

在 .NET Core 和 WPF 应用程序中,我都可以使用Environment.MachineNamevalue。但是在我的 .NET 标准类库中我不能。

我收到以下错误:

“环境”不包含“机器名”的定义

我尝试执行此问题中建议的答案,但是当我尝试添加时System.Windows.Networking.Connectivity.NetworkInformation.GetHostNames(),出现以下错误:

当前上下文中不存在名称“Windows”

我假设这仅适用于 Windows 10 通用应用程序?无论哪种方式,我都希望以独立于平台的方式获取机器名称(这种方式似乎仅适用于 Windows 机器)

4

1 回答 1

41

Environment.MachineName仅在使用System.Runtime.ExtensionsNuGet 包的 .NET Standard > 1.5 中可用(在 .NET Standard 2.0 中自动可用)。

作为替代方案,您可以System.Net.Dns.GetHostName()通过引用System.Net.NameResolutionNuGet 包来使用COMPUTERNAMEHOSTNAME通过Environment.GetEnvironmentVariable("COMPUTERNAME").

于 2017-05-14T08:19:06.087 回答