2017-11-05 13 views
1

here의 예제에 따라 DLL을 SQL Server 2012 데이터베이스에 통합하려고합니다.어셈블리를 만들지 못했습니다 - 잘못된 특성

CREATE ASSEMBLY Excel_Procs_IF 
FROM 'd:\MyDir\UWQ_Excel_Compute.dll' 
WITH PERMISSION_SET = SAFE ; 

나는 다음과 같은 오류 메시지가 얻을 :

명령은

메시지 6215, 수준 16, 상태 1, 줄 1
을 CREATE ASSEMBLY 때문에 방법을 실패 'get__Default' 형식 'Microsoft.Office.Interop.Excel.Range'안전 어셈블리 'UWQ_Excel_Compute'에 잘못된 특성 0x1083이 있습니다.

나는 이것이 어떤 의미인지, 어떻게 문제를 해결할 수 있는지 전혀 모른다.

도움이 될 것입니다.

답변

3

CREATE ASSEMBLY 문에서 PERMISSION_SETUNSAFE으로 변경해야합니다. 그렇다면 그것이 작동합니다. Office Primary Interop Assemblies의 MSDN 문서 페이지에서 언급 한 바와 같이

:

사무실 프로젝트에서 Microsoft Office 응용 프로그램의 기능을 사용하려면, 당신은 응용 프로그램의 주 interop 어셈블리 (PIA)를 사용해야합니다. PIA를 사용하면 관리되는 코드가 Microsoft Office 응용 프로그램의 COM 기반 개체 모델과 상호 작용할 수 있습니다.

그리고 Primary Interop Assemblies 상태의 페이지 :

일차 상호 운용성 어셈블리 COM 구현 종류의 (메타 데이터) 타입 정의를 포함하는 고유 벤더가 제공하는 조립체이다.

COM은 비 관리 코드이며 UNSAFE 권한 집합이 필요합니다.