You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#是否存在编译时标志可基于-r发布标记指定运行时需求?

C# 基于发布目标运行时的编译时条件编译方案

可以直接实现,.NET SDK会根据发布时指定的-r(--runtime)参数自动注入对应的编译符号,完全不需要手动添加#define指令。

常用自动定义的运行时符号

这些符号的命名规则为[操作系统]_[架构],常见的包括:

  • WINDOWS_X64:目标运行时为Windows x64
  • LINUX_X64:目标运行时为Linux x64
  • OSX_X64:目标运行时为macOS x64
  • WINDOWS_ARM64:目标运行时为Windows ARM64
  • LINUX_ARM64:目标运行时为Linux ARM64

如果只需要区分操作系统而不关注架构,也可以使用更通用的符号:WINDOWS、LINUX、OSX。

示例代码

直接使用这些自动注入的符号编写条件编译逻辑即可:

#if LINUX_X64
    // 读取文件X的逻辑
#endif
#if WINDOWS_X64
    // 读取文件Y的逻辑
#endif

使用方式

发布时指定目标运行时,SDK会自动启用对应的编译符号:

# 发布到Linux x64,仅编译LINUX_X64代码段
dotnet publish -r linux-x64

# 发布到Windows x64,仅编译WINDOWS_X64代码段
dotnet publish -r win-x64

内容的提问来源于stack exchange,提问作者Arnold Zahrneinder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 09:54:18