.NET Standard 2.0 获取当前操作系统

.NET Standard 2.0 get current Operating System

在 .NET Standard 2.0 中,我是否有任何方法可以确定我的库 运行ning 所在的操作系统和体系结构?

我需要知道 OS 和体系结构以确定要提取哪个版本的 nodejs 和 运行 在 运行-时间。

编辑评论: 我已经找到了您提供的两种方法,但是根据文档 OperatingSystem.Version and Environment.OSVersion 支持以下 .net 版本(似乎不包括标准 2.0)

编辑 2 - 不重复:根据我在上面的第一次编辑,我的问题针对的是 .NET Standard 2.0,而不是 .NET Framework 或 .NET Core。 .NET Standard 2.0 是 crossplateform byt this page 仅列出 windows 版本,这是了解这不能满足我的需求的好方法。

环顾四周后我发现了这个:

https://msdn.microsoft.com/en-us/library/system.environment.osversion(v=vs.110).aspx

空白https://msdn.microsoft.com/en-us/library/system.operatingsystem.version(v=vs.110).aspx

编辑: 找到了另一个我认为是您正在寻找的资源:

https://code.msdn.microsoft.com/How-to-determine-operating-c90d351b

经过进一步的研究和对 Environment.OSVersion 属性 的更好理解,我现在知道这个问题实际上是 this one 的重复。

让我相信它不是的原因是,因为文档没有显示这些属性和方法在 .NET Standard 2.0 中可用,所以我认为它们不可用,也没有花时间去尝试.

所以我只是 copy/pasted 来自 second answer 的代码,发现没有抛出任何错误...

RuntimeInformation 有体系结构的数据,你可以测试,如果你在 Windows 或另一个 OS.

RuntimeInformation.IsOSPlatform(OSPlatform.Linux) RuntimeInformation.IsOSPlatform(OSPlatform.OSX) RuntimeInformation.IsOSPlatform(OSPlatform.Windows)