При входе в Windows Server 2008 R2 я получаю сообщение об ошибке
oobe.exe - Ошибка инициализации .NET framework.
Не удалось найти версию среды выполнения для запуска этого приложения.
В чем причина этой ошибки и как ее исправить?
РЕДАКТИРОВАТЬ:
Думаю, эта ошибка возникла после Я изменил флаг COMPLUS_ENABLE_64bit. Может есть что делать то?
Исполняемый файл может быть скомпилирован с флагами, указывающими, что он может работать только с определенной «битностью». Вы можете изменить эти флаги, используя утилита coreflags.exe который доступен в каждом .Net SDK.
SDK для .net 2.0 можно найти Вот.
Существует 3 основных режима настройки DLL или исполняемого файла:
Обычно AnyCPU - лучший выбор, если вы не выполняете взаимодействие с COM или другим способом не вызываете машинный код, и в этом случае разрядность должна быть такой же, как то, для чего был скомпилирован собственный код.
Вероятно, вам не следует пытаться изменить разрядность сторонней DLL, поскольку, если это не "AnyCPU" по умолчанию, вероятно, есть веская причина (обычно собственные спутниковые DLL, которые могут делать что угодно, например, генерировать файлы PDF или использовать другие собственные сторонние библиотеки).
Изменить: следовать совету IBM по отключению 64-битной среды выполнения - это довольно излишне, вы можете сделать то же самое только для этого приложения, используя утилиту coreflags, оставив остальную часть структуры и все зависимые приложения нетронутыми. Отмените изменение, запустив:
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe Set64