Ошибка блокировки загрузчика в VB.NET 2008 (только для Windows XP?)

Когда я запускаю свое приложение (WPF,VB.net 2008) в Windows XP, я получаю странные ошибки Windows. Когда я установил VS2008 на машины, которые получили ошибку и отладку. Я получил исключение блокировки загрузчика, поэтому я пошел в Debug и удалил его. Тем не менее, я все еще получаю ошибку, когда она установлена ​​на машине.

Есть ли способ удалить исключение блокировки загрузчика при установке приложения. Я понимаю, что это может быть не лучшим решением, но, похоже, это происходит только тогда, когда я запускаю WindowsElementHost с ReportViewer, и это вызывает проблему, поэтому я не знаю, что еще с ним делать.

Все версии XP имеют эту проблему, как и в 2003 году.

В Windows 7 и Vista я никогда не сталкиваюсь с этой ошибкой при отладке и установленном продукте. То же самое относится и к 2008 и 2008R2.

1 ответ

Решение

Я провел небольшое исследование, и ниже вы можете найти мои догадки:

  • возможно, это ошибка в самом элементе управления Report Viewer, и вам следует обновить ее до более поздней версии. Я заметил, что в декабре 2012 года была выпущена новая версия (см. Этот пост), предположительно работающая на.NET 3.5 и 4.0 (поэтому она должна работать с VB 2008, см. Страницу загрузки);
  • Я заметил, что Report Viewer 2008 SP1 требует.NET 3.5 SP1 (см. Страницу загрузки) - возможно, устаревшая версия может вызвать исключение, которое вы видите;
  • может быть, Windows XP не обновлена ​​до последней версии пакета обновления или является неправильной версией - снова Report Viewer 2010 SP1 требуется Windows XP SP3 (см. страницу загрузки), а Report Viewer 2012 не запускается в Windows XP Starter Edition;
  • может быть, это библиотека, используемая Report Viewer, которая вызывает это исключение (особенно сборка в смешанном режиме) - в этом смысле полезен дамп или трассировка стека;
  • в этой теме есть исчерпывающий ответ на форуме Visual Studio Tools for Office, в котором перечислено несколько ресурсов для понимания этой проблемы;
  • предыдущая ссылка предполагает, что в некоторых условиях можно игнорировать эту блокировку. Если при тестировании в Visual Studio с отключенным Loader Lock MDA вы обнаружили, что проблем нет, вы можете отключить MDA на рабочих машинах, используя инструкции, приведенные в этом сообщении в блоге - в основном это связано с установкой переменной среды и добавлением некоторых строк в app.config файл (см. также документацию по Loader Lock MDA, чтобы узнать, как должны выглядеть новые строки). Я не пробовал, но подумал, что это может быть полезно для вас в качестве последнего средства решения - просто обязательно тщательно протестируйте свое приложение, чтобы избежать нежелательных побочных эффектов.

Чтобы получить дополнительную помощь, я предлагаю вам указать:

  • версия Просмотрщика отчетов, которую вы используете;
  • версия.NET Framework, на которую вы ориентируетесь (в частности, включая Service Pack);
  • какой Service Pack установлен для Windows XP;
  • любая трассировка стека или отладочная информация, которую вы можете собрать.
Другие вопросы по тегам