【发布时间】:2017-01-26 04:59:36
【问题描述】:
我想构建一个 .net 核心库,其中包含用于执行 win32 和 osx 调用的平台特定代码,并且在为每个目标操作系统编译库时,我想包含正确的操作系统代码。
我查看了 corefx 和大量文档,经过大量谷歌搜索后,我发现唯一的方法是在运行时执行操作系统检测,但这既低效又乏味。在 corefx 的情况下,他们有一个复杂的构建系统,似乎会自动拉入特定于平台的文件,但它依赖于 msbuild 等等。我错过了什么吗?
如何在文件级别或代码级别有条件地为操作系统定位代码,例如:
#if osx
// come code
#endif
或者,按照 golangs 的方式,将操作系统名称放入文件名中,例如 MyClass.osx.cs 用于 osx 代码,MyClass.cs 用于非平台内容,构建过程将包含正确的文件本身。
我正在使用 Visual Studio 代码和 project.json。
(我想在 Visual Studio 中我可以定义每个平台目标并包含我自己的定义,但我在 osx 上)
提前致谢。
【问题讨论】:
标签: .net macos visual-studio-code .net-core