Нет причин ждать лучшего ответа. Спасибо за ваши усилия и ответ.
словии, что:
Исходный код C # ниже скомпилирован под .NET 2.0 (CLR 2.0); а такжеВышеуказанное приложение используетapp.config
перечислено ниже; а такжеТолько .NET 4.0 (CLR 4.0) устанавливается в среде клиента, выполняющего приложение,тогда какая версия .NET загружается изнутри для выполнения приложения в среде клиента?
ОписаниеКонсольное приложение ниже просто покажет, что его версия CLRv4.0.30319
в консоли, но @Reed Copsey ответ стека (CLR 2.0 против 4.0 производительности?) показывает, что в этом случае загружается .NET 2.0. Кроме того, вMSDN это говорит когдаuseLegacyV2RuntimeActivationPolicy
установлено в ложьfalse
:
Используйте политику активации по умолчанию для .NET Framework 4 и более поздних версий,что позволяет старым методам активации времени выполнения загружать в процесс версию 1.1 или 2.0 CLR.
Похоже, что .NET 2.0 загружается, несмотря наapp.config
имея конфигурацию .NET 4.0. Я что-то не так понял?
C # исходный код
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string version = Environment.Version.ToString();
Console.WriteLine(version);
}
}
}
app.config
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="false">
<supportedRuntime version="v4.0.30319"/>
</startup>
</configuration>