Не удалось найти файл 'SqlAccess.dll'

605
Robert Kerr

При беге

CREATE ASSEMBLY MyAssembly FROM 'S:\SourceCode\TryUDF\bin\Debug\TryUDF.dll' 

возвращается ошибка:

Could not find file 'SqlAccess.dll' in directory 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\'. 

Сборка представляет собой библиотеку классов, созданную на основе VS2008. SQL Server 2005. SqlAcesss.dll существует в указанном выше местоположении, и этот каталог Binn находится в переменной среды PATH для системы. Как я могу диагностировать причину этой проблемы?

1
Кто-то ответил, предлагая перезагрузить сервер. Это было опробовано и без изменений. Robert Kerr 13 лет назад 0

3 ответа на вопрос

0
squillman

Если он был построен с VS2008, проверьте, используют ли ссылки на объекты SQL в проекте библиотеки SQL 2008. Это может быть вашей проблемой. Возможно, вам придется перекомпилировать вашу библиотеку под библиотеки SQL 2005.

Нет ссылок на SQL Server 200x вообще. Ссылки на данные: System.Data, System.Data.DataSetExtensions. Другими ссылками являются System, System.Core, System.Xml, System.Xml.Linq (которые я, вероятно, мог бы удалить последние два). Robert Kerr 13 лет назад 0
0
Joel Mansford

Я не могу найти статью прямо сейчас, но я уверен, что она связана с тем, что DLL не подписана, или с настройкой TRUSTWORTHY на SQL Server. Ошибка говорит, что файл не найден, но на самом деле это означает, что он не смог загрузить его (не то же самое!).

Я бы посоветовал повторно спросить на stackoverflow.com, если вы не разберетесь.

0
Robert Kerr

Решаемые. Поскольку я следовал процедурам, предложенным Microsoft Baseline Security Analyzer, для защиты SQL Server, возможно, не полностью или неправильно, учетная запись службы SQL Server не имела необходимых разрешений для папки, в которой существует sqlaccess.dll. Сразу после предоставления разрешений (чтение, выполнение, список) ошибка исчезла.

Похожие вопросы