Ошибка блокировки загрузчика в 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;
- любая трассировка стека или отладочная информация, которую вы можете собрать.