2013-11-27 23 views
6

C#でarcmapのアプリケーションで追加したファイルジオデータベースに接続しようとしました。私はそれを実行しようとしたとき、だから私は、このエラーました:私は前にこのエラーを見たことがない"ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass"は埋め込むことができません

Error 1 Interop type 'ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass' cannot be embedded. Use the applicable interface instead. 

、その後

で追加のパスを、私は間違って何が起こっているか疑問に思いました。

これは、それはすべてについての主要なコードです:

public IWorkspace FileGdbWorkspaceFromPropertySet(string database) 
    { 
     IPropertySet propertySet = new PropertySetClass(); 
     propertySet.SetProperty("DATABASE", database); 
     IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass(); 
     return workspaceFactory.Open(propertySet, 0); 
    } 

ので誤差は、この行である:

IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass(); 

私は誰かが私にこのエラーの説明を提供しても可能ことを願って私の場合は修正してください。

何が問題になりますか?

+1

'FileGDBWorkspaceFactoryClass'を' FileGDBWorkspaceFactory'に置き換えてみてください。私はそのような質問があったと思います。http://stackoverflow.com/questions/2483659/interop-type-cannot-be-embedded、http://stackoverflow.com/questions/4219605/class-cannot-be-embedded-use -the-applicable-interface- –

+0

@johnyこれは私のためにそれを修正しました。これを回答として提供できるのであれば、私はそれを受け入れたいと思うでしょう。 – Loko

答えて

2

ESRI dllがあなたのアセンブリーに埋め込まれているように見えます。 Visual Studioで作業していると仮定します。 参照先のdllを選択し、そのプロパティで「Interop Typesを埋め込む」をFalseに設定します。

これは、アセンブリの隣に配置する必要があるそのDLL用のinteropファイルを作成することに注意してください。

関連する問題