2017-11-05 28 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
は、アセンブリを作成する方法ために失敗した 'get__Default'型 'Microsoft.Office.Interop.Excel.Range'で安全なアセンブリ 'UWQ_Excel_Compute'が無効な属性0x1083を持っています。

私はこれが何を意味するのか、どのように問題に取り組むのかは分かりません。

ご協力いただければ幸いです。

答えて

3

CREATE ASSEMBLYステートメントのPERMISSION_SETUNSAFEに変更する必要があります。そうすればうまくいくはずです。

Office Primary Interop Assembliesについては、MSDNのドキュメントページ上で述べたように:

オフィスプロジェクトからのMicrosoft Officeアプリケーションの機能を使用するには、アプリケーションのためのプライマリ相互運用機能アセンブリ(PIA)を使用する必要があります。 PIAにより、マネージコードはMicrosoft OfficeアプリケーションのCOMベースのオブジェクトモデルと対話できます。

そして、Primary Interop Assemblies状態のページ:

は、プライマリ相互運用機能アセンブリは、COMで実装タイプの(メタデータなど)タイプ定義を含むユニークな、ベンダー供給アセンブリです。

COMはアンマネージドコードで、UNSAFEパーミッションセットが必要です。

関連する問題