如何在编译时使用 xbuild 检查 Mono 版本,而不是运行时
How to check Mono version at COMPILE time with xbuild, not Runtime
我知道如何在 运行 时检查,但这对我当前的问题没有好处。我有一个问题,某个版本的单声道 (Mono < 4.8.0) 不支持 TLS 1.1 或 1.2,甚至无法编译,更不用说 运行。所以我需要添加一个 #if 来确定正在使用哪个版本的单声道进行编译,但我找不到任何可以做到这一点的东西。 #if MONO 是不够的。另一个有用的备忘单是列出编译器可用的所有单声道预定义变量的东西。我确定版本可能是其中之一。
顺便说一句,该项目的所有用户都将自己编译应用程序,因此无需进行 运行时间检查。如果他们的单声道不支持 TLS 1.1/1.2,那么它仍然应该在他们的机器上构建,他们的特定二进制文件不会有 1.1/1.2,这完全没问题,因为无论如何只有他们 运行 宁它。
您可以导出环境变量。并用它来设置编译器指令:
示例:
export MONO_VERSION=`mono --version | grep version | cut -d " " -f 5`
echo $MONO_VERSION
5.10.0.179
我知道如何在 运行 时检查,但这对我当前的问题没有好处。我有一个问题,某个版本的单声道 (Mono < 4.8.0) 不支持 TLS 1.1 或 1.2,甚至无法编译,更不用说 运行。所以我需要添加一个 #if 来确定正在使用哪个版本的单声道进行编译,但我找不到任何可以做到这一点的东西。 #if MONO 是不够的。另一个有用的备忘单是列出编译器可用的所有单声道预定义变量的东西。我确定版本可能是其中之一。
顺便说一句,该项目的所有用户都将自己编译应用程序,因此无需进行 运行时间检查。如果他们的单声道不支持 TLS 1.1/1.2,那么它仍然应该在他们的机器上构建,他们的特定二进制文件不会有 1.1/1.2,这完全没问题,因为无论如何只有他们 运行 宁它。
您可以导出环境变量。并用它来设置编译器指令:
示例:
export MONO_VERSION=`mono --version | grep version | cut -d " " -f 5`
echo $MONO_VERSION
5.10.0.179