На моем компьютере я установил .NET Framework 2.0, а затем .NET Fratmeworkt 3.0. Однако недавно я получаю исключение из одной программы, говорящей «Event 1000, .NET Runtime 2.0 Error Reporting». Мне интересно, почему эта программа по-прежнему использует .NET Runtime 2.0 вместо новой версии. Как я могу проверить, какая версия .NET Runtime используется конкретной программой? Можно ли это изменить?.net runtime 2.0 вместо самой новой версии?
ответ
Все зависит от того, какая версия .NET была скомпилирована. Разработчик выбирает целевую структуру. Насколько мне известно, конечные пользователи не могут изменить, какая версия библиотек используется после развертывания. Если приложение предназначалось для 2.0, даже если у вас установлено 4.0, он будет всегда запускаться в версии 2.0 для lib.
«.NET runtime» на самом деле означает «Common Language Runtime» (CLR), версия 2.0 для .NET Framework 2.0, 3.0 и 3.5. Только с .NET 4.0 версия CLR также была увеличена до 4.0 (есть много вопросов о путанице в отношении этого двойного управления версиями на SO, для приятного обзора см. Это answer). Таким образом, сообщение, которое вы видите, может ввести в заблуждение, но все еще верно.
Если вы еще не установили .NET 4.0, .NET runtime 2.0 - единственная версия, присутствующая на вашем компьютере.
Возможно, вам захочется узнать, действительно ли приложение действительно скомпилировано/создано против .NET framework 3.0 (3.5) вместо .NET framework 2.0.
Для получения этой информации вам необходимо просмотреть метаданные сборок приложения, то есть место, где хранятся ссылки на другие сборки, в том числе те, которые содержатся в самой платформе .NET, вместе с версией этих других сборок.
Для просмотра этой информации вы можете использовать Reflector, или ILDASM.EXE
, который поставляется с .NET Framework SDK (или Visual Studio).
Например, используя ILDASM.EXE
на двоичном (исполняемом или DLL) по вашему выбору, затем откройте узел «МАНИФЕСТ». Вы увидите записи, как это:
.assembly extern System.Windows.Forms
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89) // .z\V.4..
.ver 4:0:0:0
}
В ДАННОЙ случае это был взят из приложения в .NET 4.0 и относится только к System.Windows.Forms.dll
, но я думаю, вы получите картину.
Вы можете (частично) повлиять на версию исполняемого файла приложения, указав элемент <supportedRuntime>
в файле конфигурации приложения. Более подробно об этом см. this Stack Overflow question, среди others.
Runtime - ключевое слово. Было всего 4 различных версии среды выполнения: 1.0, 1.1, 2.0 и 4.0. Вы все еще используете версию 2.0.50727 из CLR и дрожание. И mscorlib.dll и другие основные сборки .NET Framework все еще 2.0.0.0
У вас определенно появилось намного больше положительных эффектов, когда вы установили .NET 3.0, кучу новых сборок, поддерживающих такие вещи, как WCF, WPF и Linq и новую версию компилятора C#. Достаточно гарантировать увеличение номера версии, даже если для них не требуется новая версия среды выполнения.
То же самое произойдет со следующей версией .NET 4.5. Версия исполнения остается неизменной, 4.0.30319
- 1. Ошибка .NET Runtime 2.0
- 2. LINQ на .NET 2.0 Runtime
- 3. Являются ли .NET 4.0 Runtime медленнее, чем .NET 2.0 Runtime?
- 4. .NET Runtime 2.0 Ошибка в службе
- 5. configure .net runtime 2.0 отчет об ошибках
- 6. Развертывание приложений [.NET 2.0 + Access 2007 Runtime]
- 7. XPages В версии Runtime версии WCT вместо DSI
- 8. .NET Remoting переносится с версии 2.0 на 4.0. NET
- 9. Ориентация .NET Framework 3.5, использование .NET 2.0 Runtime. Предостережения?
- 10. Ошибка .NET Runtime 2.0 в приложении .NET 3.5
- 11. .net Runtime - Silverlight Runtime =?
- 12. Как настроить командную строку для использования самой новой версии PHP?
- 13. PHP rename() дублирует файл вместо новой версии
- 14. .Net Установка: перезапись старой версии с новой
- 15. Ошибка Net Runtime: Ошибка .NET Runtime 2.0 - Идентификатор события: 1000 Сбой моей программы. Что вызвало это?
- 16. Перенос приложения asp .net 2.0 последней версии .net (вопрос дизайна)
- 17. MMC .Net Runtime Version
- 18. Как переключиться .net runtime?
- 19. Сборка, скомпилированная в старой версии .NET, работающей в новой версии .NET, изменится ли поведение?
- 20. . Net 2.0 List Issue
- 21. Uncatchable Ошибка .NET runtime 2.0 - пользовательская машина - что дальше?
- 22. компилируется специально для .net 2.0 runtime в VS2010?
- 23. .NET Runtime версии 2.0.50727.3082 - Ошибка Fatal Execution Engine
- 24. Последствия старой версии Java.exe (7.1) с использованием новой версии runtime (8.x)
- 25. Предотвратите загрузку самой обновленной версии Nuget
- 26. Parse JSON с .NET 2.0
- 27. Почему IIS загружает dll .NET 2.0 вместо версии 4.0 внутри пула приложений 4.0?
- 28. Использование PowerShell с .NET 3.5 runtime/libraries
- 29. Встраивание .Net Runtime
- 30. .NET Runtime Optimization Service