如何确定我的C#代码在哪个平台上运行?例如,它是在Linux还是Windows上运行,以便我可以在运行时执行不同的代码。
我有一个要针对Windows和Linux平台构建的C#Windows应用程序。
到目前为止,我已经创建了两个指向相同源代码文件集的项目文件。然后,我使用条件编译语句之一的项目称为LINUX。
例如,在实际代码中有区别的地方,我使用条件编译语句来使用条件语句,
#if (LINUX)
' Do something
#endif
是否有更好的方法?我真的不想有两个项目文件。
[编者注
我在Microsoft的一个博客中发现了此建议:
用途:
您可以使用Linux
在运行时检查您所使用的平台。
为了扩展其他答案,如果功能的Linux和Windows实现不兼容(即,需要引用仅适用于特定平台的库),您还可以使用一个接口并具有两个单独的程序集,在每个平台上编写和编译的代码,其类型可实现此接口。
另一个选择是使用OSX
调用shell脚本以获取OSX
,如下所示:
没有任何这样的方法,但是您可以使用此方法有条件地对其进行检查: