在 mono 中编译的 C# - 检测操作系统

2023-11-25

我正在尝试让一个 C# 应用程序在 OSX 下运行,但这并不是完全没有痛苦。为了在短期内解决一些问题,我正在考虑在 OSX 中运行时设置一些特定的规则。

但是...我可以使用什么来确定应用程序是在 Windows 还是 OSX 下运行?


来自单声道wiki(根据我的经验,OSX 被识别为 Unix):

int p = (int) Environment.OSVersion.Platform;
if ((p == 4) || (p == 128)) {
        Console.WriteLine ("Running on Unix");
} else {
        Console.WriteLine ("NOT running on Unix");
}

Or

string msg1 = "This is a Windows operating system.";
string msg2 = "This is a Unix operating system.";
string msg3 = "ERROR: This platform identifier is invalid.";

OperatingSystem os = Environment.OSVersion;
PlatformID     pid = os.Platform;
switch (pid) 
{
    case PlatformID.Win32NT:
    case PlatformID.Win32S:
    case PlatformID.Win32Windows:
    case PlatformID.WinCE:
        Console.WriteLine(msg1);
        break;
    case PlatformID.Unix:
        Console.WriteLine(msg2);
        break;
    default:
        Console.WriteLine(msg3);
        break;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 mono 中编译的 C# - 检测操作系统 的相关文章

随机推荐

  • 如何在 F# 中声明通用异常类型

    如何定义如下所示的异常 exception CustomExn lt TMessage gt of TMessage list 也许你可以直接继承System Exception type CustomExn lt TMessage gt
  • 按下蓝牙设备按钮应触发应用程序中的 Onclick 侦听器

    我正在尝试制作一个应用程序 当在配对的蓝牙设备上按下按钮时 该应用程序会触发应用程序中的单击侦听器 经过几个小时的谷歌搜索后 我认为我无法将蓝牙设备按钮的键码发送到广播接收器 如果键码匹配 那么我可以调用点击监听器 或者我的方法和理解可能是
  • wpf databind IsVisible to TabControl.SelectedItem != null

    我有一个StackPanel我想让它仅在以下情况下可见SomeTabControl SelectedItem null 如何在 WPF 绑定中执行此操作 您可以通过使用样式和触发器而无需转换器来完成此操作
  • 如何使用delphi以编程方式删除USB闪存盘?

    如何使用delphi以编程方式检测和删除USB闪存盘 我已经看过该网站上的一些示例 但它们缺乏关于如何进行操作的明确解释 请举例真的很有帮助 这是一个快速而肮脏的翻译这个示例代码要删除驱动器 请访问 support microsoft co
  • jQuery - 无法将事件绑定到动态元素?

    我来维护一段 javascript 它从服务器下载一些 JSON 数据 构建一个新的表行 例如 tr 然后 将事件绑定到它 如下所示 a click function yadda yadda return false 唯一的问题是这似乎不起
  • 管理 FOSUserBundle 中的用户/角色/组

    我正在开发一个简单的 CRUD 来管理我正在使用的应用程序的用户 角色 组 管理我正在使用的用户FOSUserBundle 我想做的事情可以通过以下几种方式来完成 将角色分配给组 然后将用户分配给这些组 直接为用户分配角色 但我不知道怎么办
  • 将字典列表转换为字典集

    如何从一个字典列表中创建一组字典 Example import copy v1 k01 v01 k02 k03 v03 k04 k05 v05 v2 k11 v11 k12 k13 v13 k14 k15 v15 data N 5 for
  • git 有没有办法获取给定提交的推送日期?

    我想知道是否有一种方法可以查看与 git 日志中每个提交相关的推送日期 如果这是不可能的 有没有办法查看某个推送下的所有提交 我编写了一个程序 需要在推送时跟踪提交 因为 git 日志是按提交日期而不是推送日期排序的 所以我无法看到推送的最
  • 根据 Google 散点图的值更改点颜色

    我正在创建一个谷歌散点图 我有一个数据系列 看起来像 var data new google visualization DataTable data addColumn number ID data addColumn number Va
  • 获取控制器名称

    在 WebApiConfig cs 中我有以下内容 public static void Register HttpConfiguration config config MapHttpAttributeRoutes config Serv
  • 等待取消的未来真正完成

    我有一个SwingWorker它调用一些不检查线程中断的代码 拨打电话后worker cancel true the worker get 方法会抛出CancellationException立即 正如预期的那样 但是 由于后台任务的代码从
  • AngularJS Karma 测试中的 jQuery 触发事件

    我正在尝试测试我正在编写的新指令 但是 我似乎无法在 Karma Jasmine 中使用 jQuery 触发 keydown 事件 这是测试的简化版本 use strict describe function var compile var
  • DrawerLayout 阻止调用 MainActivity.onTouchEvent()

    我有一个应用程序可以覆盖onTouchEvent MotionEvent ev of the MainActivity确定Two Finger Swipe and Pich Open Pinch Close 一切正常 直到我添加Drawer
  • 如何使用 Java 和 itext 从 Graphics 对象创建多页 PDF

    我有一个带有抽象方法draw Graphics2D g2 的抽象类 以及方法print showPreview printPDF 对于我的 Java 程序中的每个文档 我都实现了 draw 因此我可以打印 显示预览并为每个文档创建 PDF
  • 如何使用Python将八进制转换为十进制

    我有这个小作业 我需要将十进制转换为八进制 然后将八进制转换为十进制 我做了第一部分 但无法弄清楚第二部分来挽救我的生命 第一部分是这样的 decimal int input Enter a decimal integer greater
  • 检查用户是否在 Android 中的 Firebase Google 身份验证中首次进行身份验证

    我在 Android 应用程序中使用 Firebase 身份验证 并使用 Google 帐户身份验证作为登录应用程序的选项 我如何知道用户是否是首次登录应用程序 要检查用户是否是第一次登录 只需调用AdditionalUserInfo is
  • WPF FlowDocument 表 - 自动调整选项?

    我想要一个表根据内容逻辑地调整列的大小 这在 WPF 中可能吗 替代文本 http img43 imageshack us img43 2640 flowdocument jpg 这是我正在使用的代码
  • C++:std::vector [] 运算符

    Why std vector有 2 个操作员 实现 reference operator size type pos const reference operator size type pos const One for 非常量矢量对象
  • 哪个是正确的:向量或const向量

    哪个是对的 vector
  • 在 mono 中编译的 C# - 检测操作系统

    我正在尝试让一个 C 应用程序在 OSX 下运行 但这并不是完全没有痛苦 为了在短期内解决一些问题 我正在考虑在 OSX 中运行时设置一些特定的规则 但是 我可以使用什么来确定应用程序是在 Windows 还是 OSX 下运行 来自单声道w