Не удалось загрузить Microsoft.SqlServer.BatchParser или одну из его зависимостей
Я знаю, что этот вопрос задавался много раз, и я нашел много информации в Google относительно этой проблемы, но я все еще не могу решить проблему, которая существует на моем ПК DEV :(
![I have that ugly error message on every page]()
Не удалось загрузить файл или сборку Microsoft.SqlServer.BatchParser
Я установил коллекцию объектов управления Microsoft SQL Server 2005, как советовали многие интернет-ресурсы, но это не помогло.
Затем я попытался установить объекты управления Microsoft SQL Server 2008, но он говорит, что установить его нельзя, поскольку уже существует более новая версия (у меня установлен SQL Server 2008).
Затем я пошел в GAC и обнаружил следующие строки:
Microsoft.SqlServer.BatchParser, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91, процессор архитектуры = AMD64
Microsoft.SqlServer.BatchParser, версия = 9.0.242.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91, процессор архитектуры = AMD64
Microsoft.SqlServer.BatchParser, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91, processorArchitecture = x86
Microsoft.SqlServer.BatchParser, версия = 9.0.242.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91, processorArchitecture = x86
Microsoft.SqlServer.BatchParserClient, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91, processorArchitecture = MSIL <- должна ли существовать версия 9.0.242.0?
Я уже потратил около полдня, чтобы найти решение без успеха, и было очень дерьмово работать с VS, когда IntelliSense не работает из-за этой ошибки.
У меня установлена VS 2010 SQL Express 2005 и SQL Server 2008 (см. Скриншот конфигурации) ![enter image description here]()
Пожалуйста, помогите мне решить это! Благодарю.
Ответы
Ответ 1
ПРИМЕЧАНИЕ. Этот ответ предназначен для людей, которые используют MS SQL SMO (объекты управления) из программы на С#.
Я боролся с ошибкой, упомянутой в вопросе. Точная ошибка, которую я получил, была такова:
Не удалось загрузить файл или сборку "Microsoft.SqlServer.BatchParser.dll" или одну из ее зависимостей. Сбой процедуры инициализации библиотеки динамической компоновки (DLL). (Исключение из HRESULT: 0x8007045A)
В результате возникла проблема с запуском сборок .NET 2.0 в .NET 4.0 (или более поздней) CLR. Сборки SMO сервера SQL создаются на основе v2.0.50727 среды выполнения, поэтому в app.config (или web.config) требуется следующий раздел.
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
Подсказка была в этой ветке обсуждения на форумах MSDN.
Ответ 2
Вы видите эту ошибку в Management studio или Visual Studio? Когда вы получаете это сообщение об ошибке? Проблема может быть вызвана 32-битным или 64-битным взаимодействием, как указано в
956178 Сообщение об ошибке при запуске 32-разрядной версии SQL Server 2008 в версии Windows на базе Itanium: "Системе не удается найти указанный файл" http://support.microsoft.com/kb/956178/EN-US
Если вы используете 64-битную систему, убедитесь, что вы установили 64-битную версию обновленных объектов управления.
Ответ 3
вы должны получать эту ошибку при выполнении приложения через визуальную студию. У меня есть эта ошибка в прошлом, но она была решена после некоторого обходного пути, например
1) удалите ненужную ссылку BatchParser (если она существует в web.config).
2) используется некоторая сторонняя dll, которая может вызвать приложение через эту ошибку.
3) Возможно, вы скопировали свою страницу aspx с другой страницы и забыли изменить раздел "inherits".
Ответ 4
Мне нужно было перейти в расширенные настройки пула приложений и установить "включить 32-разрядные приложения" в TRUE (я запускал 64-разрядный SQL Server).