是否可以使预处理器指令依赖于 C# 版本

本文关键字:依赖于 版本 指令 处理器 可以使 预处理 是否 | 更新日期: 2023-09-27 18:33:05

是否可以

定义一个编译时常量来说明代码是由 C# 5 还是 C# 6 编译的?例如:

<DefineConstants Condition=" '$(???LanguageVersion???)' != 'v6.0' ">
     NOT_RUNNING_ON_6
</DefineConstants>

是否可以使预处理器指令依赖于 C# 版本

项目文件中定义的常量全部由 MSBuild 设置。哪个不知道编译器版本。它还仅将所有这些属性委托给Csc任务。由于编译器不会根据版本设置常量,因此您根本无法这样做。

不过,您可以使用自定义生成过程包装器来确定编译器版本并相应地更改项目文件。