2013-12-19 6 views
1

Я создал некоторую библиотеку и хочу использовать ее как сборку CLR в MSSQL. Дело в том, что в моей библиотеке есть ссылка на «iAnywhere.Data.SQLAnywhere», которую я не могу установить. Ошибка:Не удается установить сборку на SQL Server 2008

Ассамблея не может быть установлен «iAnywhere.Data.SQLAnywhere», потому что существующая политики будет держать его от использования.

Я выполнил рекомендации и теперь мой SQL выглядит следующим образом:

USE DB_Control 
GO 

ALTER DATABASE DB_Control SET TRUSTWORTHY ON WITH ROLLBACK IMMEDIATE 
GO 

ALTER DATABASE DB_Control SET TRUSTWORTHY ON 
GO 

exec sp_configure 'show advanced options', 1; 
GO 

RECONFIGURE; 
GO 

exec sp_configure 'clr enabled', 1; 
GO 

RECONFIGURE; 
GO 

CREATE ASSEMBLY [iAnywhere.Data.SQLAnywhere] 
AUTHORIZATION sa 
FROM '~\Debug\iAnywhere.Data.SQLAnywhere.dll' 
WITH PERMISSION_SET = UNSAFE 
GO 

CREATE ASSEMBLY ClrSqlMediator 
AUTHORIZATION sa 
FROM '~\Debug\SQLMediator.dll' 
WITH PERMISSION_SET = UNSAFE 
GO 

Кто-нибудь знает, как это исправить?


Upd: версия Сервер SQL Server 2008 R2 (x64). My MediatorCLR построен как x64 lib, но я почти shure SQLAnywhere.dll построен как x86. Это может быть причина?


UPD2: Вот Dropbox ссылку на LIBS: x64 - https, x86 - https.


Upd3: я начинаю думать, что SQLAnywhere.dll не может быть загружен на все из-за опциями сборки x86, и я не уверен, что у него есть публичные статические методы, которые требуются. Разумеется, я должен был реализовать какую-то другую ссылку.

+0

Неверная версия .NET? http://stackoverflow.com/questions/2781624/sqlclr-using-the-wrong-version-of-the-net-framework –

+0

nope, 2.0 обе библиотеки –

+0

Какая версия SQL Server? –

ответ

1

Обратите внимание там статей

FROM '~\Debug\iAnywhere.Data.SQLAnywhere.dll' 
FROM '~\Debug\SQLMediator.dll' 

Здесь вы должны указать правильный путь из машины SQL Server, после того, как вы скопировали, что .dll на компьютере SQL Server.

Альтернативно, в случае, если у вас нет доступа к файловой системе сервера SQL для того, чтобы скопировать файл сборки, вы можете generate hex code, затем зарегистрировать сборки .NET:

CREATE ASSEMBLY <AssemblyName.dll> 
AUTHORIZATION [dbo] 
FROM <0x4D5A9000030000000400000.... generated hex code here> 
WITH PERMISSION_SET = SAFE 
GO 
+0

путь действителен, я сократил его до вставки здесь - он слишком длинный –

Смежные вопросы