假如说:
app.config下面列出的; 和然后在内部加载哪个版本的.NET来在客户端环境中执行应用程序?
下面的控制台应用程序将只显示其CLR版本v4.0.30319在控制台中,但@Reed Copsey对堆栈的回答(CLR 2.0与4.0性能?)表明在这种情况下加载了.NET 2.0.此外,在MSDN上,它表示何时useLegacyV2RuntimeActivationPolicy设置为false false:
使用.NET Framework 4及更高版本的默认激活策略, 即允许旧版运行时激活技术将CLR版本1.1或2.0加载到该过程中.
尽管app.config有.NET 4.0配置,但听起来像是加载了.NET 2.0 .我误解了什么吗?
C#源代码
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string version = Environment.Version.ToString();
Console.WriteLine(version);
}
}
}
Run Code Online (Sandbox Code Playgroud)
app.config
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="false">
<supportedRuntime version="v4.0.30319"/>
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)