Не удается найти microsoft.sqlserver.batchparser.dll
Я написал веб-приложение asp.net, которое использует SMO против SQL Server 2008, чтобы иметь возможность запускать некоторые сценарии БД. Он ссылается на эти сборки (в папке C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies):
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Файл microsoft.sqlserver.batchparser.dll отсутствует в этой папке. Локально (машина 32 бита, IIS7) у меня нет проблем.
Когда я публикую приложение для своего хостинг-провайдера (discountasp.net, SQL Server 2008, IIS7, 32bit), я получаю эту ошибку:
Не удалось загрузить файл или сборку "Microsoft.SqlServer.BatchParser, версия =10.0.0.0, культура = нейтральная, PublicKeyToken=89845dcd8080cc91" или одна из ее зависимостей. Система не может найти указанный файл.
Я искал свою локальную машину, и я не могу найти эту сборку. Однако это хорошо работает на этой машине.
Средство "Отчет об обнаружении установки Microsoft SQL Server 2008" сообщает, что у меня установлена локальная версия 10.1.2531.0.
Спасибо
10 ответов
Чтобы получить эту DLL, вам нужно будет установить объекты управления Microsoft SQL Server 2008 (доступно здесь). Эта конкретная DLL устанавливается в GAC, поэтому вы, вероятно, не можете найти ее с помощью поиска.
Поскольку вы используете хостинг-провайдера, может показаться, что у него не установлено это. Вы можете установить его (что, вероятно, маловероятно) или развернуть dll вручную (что может быть на хитрых условиях лицензирования).
Во-первых, вам нужно включить просмотр папки GAC:
1. зайдите в редактор реестра (RUN> regedit)
2. перейдите в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Fusion
3. Щелкните правой кнопкой мыши Fusion> NEW> DWORD
4. Введите DisableCacheViewer
5. Дважды щелкните DisableCacheViewer.
6. Установите значение 1
тогда вы можете найти это здесь
C:\Windows\ сборка \GAC_32\Microsoft.SqlServer.BatchParser\10.0.0.0__89845dcd8080cc91
У меня была похожая проблема, но с R2. Для меня это сработало путем установки общих объектов управления Microsoft® SQL Server® 2008 R2 и зависимых типов Microsoft® System CLR для SQL Server® 2008 R2.
Найдите их здесь http://www.microsoft.com/en-us/download/confirmation.aspx?id=16978
Я разрешаю это, только щелкнув правой кнопкой мыши по проекту, перейдите в Свойства и измените целевую платформу с "Любой" на "x86".
Вам также необходимо установить компоненты SMO на хостинг-провайдере. Вы можете скачать их здесь.
Установите «Microsoft Visual C++ 2013 Redistributable (x86)», если он не отображается в программах добавления / удаления.
Вы также можете установить функцию подключения клиента SQL с DVD-диска SQL Server. Я установил это, а также компоненты SDK, чтобы решить эту проблему при установке SolarWinds.
<startup useLegacyV2RuntimeActivationPolicy="true"> in App.config
Это случилось со мной сегодня. Запуск от имени администратора помог мне, я не знаю почему.
Он не идеален для производства, но может работать только в средах разработки.
У меня был установлен SMO x64, но SMO x86 требовался на сервере сборки.