是否有任何编译时标志来有条件地指定运行时要求



C#中是否有任何编译时标志可以有条件地指定运行时要求?例如,考虑到标志#if DEBUG ... #endif,是否可以执行类似于的操作

#if RUNTIME_LINUX_X64
// Read file X 
#endif
#if RUNTIME_WIN_X64
// Read file y
#endif

因此,将基于与publish命令相关联的-r标志来编译代码的正确部分。

更新:我不想使用#define xxx,我只想基于-r标志获得目标运行时值。

您可以通过提供DefineConstants属性来定义常量:

dotnet build -p:DefineConstants=SOME_PREPROCESSOR_SYMBOL

但在这种特殊情况下,您可能只需要使用Environment.OSVersionRuntimeInformation.IsOSPlatform检查。

同时查看:

  • .NET运行时标识符(RID(目录,并基于RID定义常量
  • SupportedOSPlatformAttribute
  • CCD_ 10

最新更新