问题是我需要知道它是否是版本3.5 SP 1. Environment.Version()只返回2.0.50727.3053.
我找到了这个解决方案,但我认为这需要花费更多的时间而不是它的价值,所以我正在寻找一个更简单的解决方案.可能吗?
我想知道在程序执行期间是使用Mono运行时还是Microsoft运行时执行它.
我目前正在使用以下代码来确定我是否在使用MS CLR:
static bool IsMicrosoftCLR()
{
return RuntimeEnvironment.GetRuntimeDirectory().Contains("Microsoft");
}
Run Code Online (Sandbox Code Playgroud)
但是,这在某种程度上取决于运行时的安装文件夹,我不确定这是否适用于所有安装.
有没有更好的方法来检查当前的运行时?
C#程序如何检测它是在C#版本下编译的,该版本不包含对该程序中使用的语言功能的支持?
当遇到它不支持的语言的功能时,C#编译器将拒绝该程序并产生一些错误消息.这并没有解决这个问题,即说明程序是用旧版本的C#编译器编译的,或者是不支持所需版本的C#的C#编译器.
理想情况下,它会如此简单
#if CS_VERSION < 3
#error CSharp 3 or later is required
#end
Run Code Online (Sandbox Code Playgroud)