Переустановка .NET Framework 4.0 приводит к сбою приложения с ошибкой CLR20r3

Я написал свое приложение в Visual Studio 2012. Я использую внешнюю ссылку на библиотеку OxyPlot (dll). Я тестировал свое приложение на некоторых машинах с Windows 7 (та же сборка, был установлен Framework 4.0). Приложение работало нормально, но на машине с Windows XP не получилось (также был установлен Framework 4.0).
После этого я установил Framework 4.5 на машину с Windows 7, затем удалил Framework 4.5 (из Панели управления => Программы и компоненты) и установил обратно Framework 4.0 (автономный установщик). Мое приложение не запустилось с ошибкой: CLR20r3.

Details:
Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: rm.exe
  Problem Signature 02: 1.0.0.0
  Problem Signature 03: 525fd886
  Problem Signature 04: OxyPlot
  Problem Signature 05: 2013.1.100.1
  Problem Signature 06: 525451de
  Problem Signature 07: 218
  Problem Signature 08: 0
  Problem Signature 09: System.IO.FileLoadException
  OS Version:   6.1.7601.2.1.0.256.1
  Locale ID:    1049

В конце концов, я удалил библиотеку OxyPlot из своего проекта, перекомпилировал ее, и мое приложение нормально запустилось на каждой машине.
Почему переустановка Framework 4.0 привела к сбою моего приложения и почему оно не запустилось в Windows XP? Как мне решить эту проблему? Какова связь между Framework 4.0 и внешней dll OxyPlot?


person funkerkat    schedule 17.10.2013    source источник


Ответы (2)


I OxyPlot не поддерживает .Net 3.5, только 4 и выше.

Windows XP не поддерживает .Net 4.5, только 4 (при условии, что у вас установлен пакет обновлений 3).

Обычно VS2012 устанавливает библиотеки .Net4.5.

Может с этим какая-то проблема. (Установка VS2010 и 2012 на одном компьютере с Win 7 привела к поломке Visual Studio 2010 при использовании дизайнера). Возможно, вы столкнулись с похожей проблемой.

С другой стороны, если вы ориентируетесь на Windows XP, ваша безопасная ставка будет состоять в том, чтобы создать приложение, ориентированное на .Net 2... (черт возьми, XP устарела)...

person Noctis    schedule 20.10.2013
comment
Приложение нормально выполняется в Windows 7 с установленным Framework 4.0 (на машине, где не установлена ​​Visual Studio). Но после следующих операций: - person funkerkat; 21.10.2013
comment
Вин 7 должно быть нормально. Сомневаюсь, что win XP подойдет во всех случаях. Что ты пытаешься сказать после: Но после следующих операций: - ? - person Noctis; 21.10.2013
comment
Приложение нормально выполняется в Windows 7 с установленным Framework 4.0 (на машине, где не установлена ​​Visual Studio). Но после следующих операций: установить фреймворк 4.5 на фреймворк 4.0 => удалить 4.5 => установить снова фреймворк 4.0 обратно =>› после этих операций приложение вылетело. Так почему же переустановка 4.0 привела к сбою приложения? - person funkerkat; 21.10.2013
comment
Какова ваша цель в VS2012 (4? 4.5?). Кроме того, эта ошибка случалась с людьми, у которых отсутствует ссылка или dll. Предложение/обходной путь состоит в том, чтобы убедиться, что у вас есть CopyLocal=true в конфигурации вашего приложения. Установка 4.5 поверх 4 вызывает некоторые забавные проблемы, как я упоминал ранее. Их удаление и переустановка не всегда помогает. Боюсь, с той информацией, которую вы предоставили, я не мог сказать намного больше. - person Noctis; 21.10.2013
comment
Цель VS2012 — 4.0. Свойство DLL CopyLocal=true. - person funkerkat; 21.10.2013
comment
Framework 4.0 установлен в Windows XP, но приложение не работает. И на Windows 7 с переустановленным приложением Framework 4.0 тоже зависло. Я полагаю, что в обоих случаях речь идет об одном и том же раздавливании. - person funkerkat; 21.10.2013

Я была такая же проблема. Я решил проблему после установки определенного обновления безопасности .Net 4.0: http://support.microsoft.com/kb/2604121.

Мое приложение WPF нацелено на .Net Framework 4.0 и использует OxyPlot 2014.1.277.1.

Для этого приложения я также провел некоторое тестирование установки/удаления, каждый раз удаляя .Net Framework 4.0 (что является предварительным условием, выполняемым при установке).

Когда я запустил приложение, я получил следующую ошибку:

Подробности:
Сигнатура проблемы:

Problem Event Name: CLR20r3  
 Problem Signature 01: seling.newmonitor.gui.exe  
 Problem Signature 02: 1.0.0.0  
 Problem Signature 03: 5379d9c4  
 Problem Signature 04: OxyPlot.Wpf  
 Problem Signature 05: 2014.1.277.1  
 Problem Signature 06: 534623ca  
 Problem Signature 07: 224  
 Problem Signature 08: 33  
 Problem Signature 09: System.IO.FileLoadException  
 OS Version: 6.1.7600.2.0.0.256.48  
 Locale ID: 1040  
 Additional Informations 1: 0a9e  
 Additional Informations 2: 0a9e372d3b4ad19135b953a78882e789  
 Additional Informations 3: 0a9e  
 Additional Informations 4: 0a9e372d3b4ad19135b953a78882e789  

Затем я установил обновление KB2487367, но ничего не изменилось: приложение было прекращено, показывая указанную выше ошибку.
После установки KB2604121 приложение работало нормально, и я смог увидеть график OxyPlot.
Эти обновления был предложен Центром обновления Windows.

Это был стек ошибок, который у меня был до установки KB2604121:

Приложение: Seling.NewMonitor.GUI.exe Framework Версия: v4.0.30319
Описание: Процесс был прерван из-за необработанного исключения.
Информация об исключении: System.IO.FileLoadException Stack:

at OxyPlot.PlotModel.Update(Boolean)  
at OxyPlot.Wpf.Plot.UpdateModel(Boolean)  
at OxyPlot.Wpf.Plot.InvalidatePlot(Boolean)  
at OxyPlot.Wpf.Plot.PlotLoaded(System.Object, System.Windows.RoutedEventArgs)  
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)  
...  
at System.Windows.Application.Run(System.Windows.Window)  
at Seling.NewMonitor.GUI.App.Main()  

Надеюсь это поможет!

person user3655938    schedule 20.05.2014