如何知道 .fsx 脚本是被 .NETCore/.NET5 还是遗留框架运行?
How to know if .fsx script being run by .NETCore/.NET5 or by legacy framework?
我的 .fsx 脚本有点旧,所以它们只能与 .NET4.x 一起使用,这意味着我需要在 macOS 中使用 fsharpi
命令 运行 它们。
现在我正在考虑开始将它们迁移到 dotnet fsi
;但是,理想情况下,我可以找到一种方法 运行 在过渡期间以两种方式同时使用它们。
所以我希望,在它们里面,我可以做一些像这样的条件代码:
#if NET5_0
System.Console.WriteLine "we're running in dotnet fsi, yay"
#else
System.Console.WriteLine "we're running with fsharpi, legacy"
#endif
但它不起作用,令人惊讶(我说令人惊讶是因为许多文档页面中都提到了定义 NET5_0
)。关于如何检测到这个的任何其他想法?
我认为 System.Environment.Version
会为您提供所需的信息:
if System.Environment.Version.Major >= 5 then
System.Console.WriteLine "we're running in dotnet fsi, yay"
else
System.Console.WriteLine "we're running with fsharpi, legacy"
看起来 NET5_0
只是为 C# 定义的。
我的 .fsx 脚本有点旧,所以它们只能与 .NET4.x 一起使用,这意味着我需要在 macOS 中使用 fsharpi
命令 运行 它们。
现在我正在考虑开始将它们迁移到 dotnet fsi
;但是,理想情况下,我可以找到一种方法 运行 在过渡期间以两种方式同时使用它们。
所以我希望,在它们里面,我可以做一些像这样的条件代码:
#if NET5_0
System.Console.WriteLine "we're running in dotnet fsi, yay"
#else
System.Console.WriteLine "we're running with fsharpi, legacy"
#endif
但它不起作用,令人惊讶(我说令人惊讶是因为许多文档页面中都提到了定义 NET5_0
)。关于如何检测到这个的任何其他想法?
我认为 System.Environment.Version
会为您提供所需的信息:
if System.Environment.Version.Major >= 5 then
System.Console.WriteLine "we're running in dotnet fsi, yay"
else
System.Console.WriteLine "we're running with fsharpi, legacy"
看起来 NET5_0
只是为 C# 定义的。