일부 라이브러리를 만들고이를 MSSQL의 CLR 어셈블리로 사용하려고합니다. 요점은 내 lib 디렉토리에 설치할 수없는 'iAnywhere.Data.SQLAnywhere'lib 디렉토리에 대한 참조가 있다는 것입니다. 오류 : 정책을 기존의 사용에서 계속 때문에 'iAnywhere.Data.SQLAnywhere가'를 설치할 수 없습니다 SQL Server 2008에 어셈블리를 설치할 수 없습니다.
조립.
나는 권장 사항을 구현하고 지금은 내 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 : Server 버전의 SQL Server 2008 R2 (64)이다. MediatorCLR이 x64 lib로 구축되었지만 SQLAnywhere.dll이 x86으로 구축 된 것이 거의 확실합니다. 이유가 될 수 있습니까? https, 86 - - https 64 : Upd2
: 여기은 libs와에 드롭 박스 링크입니다.
Upd3
: 나는 SQLAnywhere.dll 모든 때문에 86 빌드 옵션에서로드 할 수없는 것을 생각하기 시작하고 나는 그것이 필요합니다 공공 정적 방법이 있는지 모르겠어요. 확실히 다른 종류의 참조를 구현해야합니다. 당신은 SQL Server 시스템에 .DLL이 복사 한 후이 절FROM '~\Debug\iAnywhere.Data.SQLAnywhere.dll'
FROM '~\Debug\SQLMediator.dll'
에
잘못된 .NET 버전 :
는 또한, 당신이 당신의 어셈블리 파일을 복사하기 위해 SQL 서버 파일 시스템에 액세스 할 수없는 경우에, 당신은 generate hex code 후 .NET 어셈블리를 등록 할 수 있습니다? http://stackoverflow.com/questions/2781624/sqlclr-using-the-wrong-version-of-the-net-framework –
nope, 2.0 both libs –
SQL Server의 버전은 무엇입니까? –