我想从我的P/Invoke
应用程序中进行一些ASP.Net Core
调用,为此我显然需要确定我正在运行的平台。
该项目使用docker和linux容器,因此在我的示例中可能只有两个可能的平台:
在Environment.OSVersion.Platform
的帮助下,我能够在运行时检测到该平台,因此我可以DllImport
必要的动态库,并switch
通过Platform
值确定要执行的导入函数。
虽然这很好用,但我真的希望能够删除这个运行时开销,并能够用#if
指令(例如#if Docker
或#if Windows
包裹我的部分代码)只编译我正在进行的部署类型所需的代码。
有没有办法在支持docker的Asp.Net Core
项目中完成此任务?