2013-11-27 1 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 Embedding"을 False로 설정합니다.

어셈블리 옆에 넣어야 할 DLL에 대한 interop 파일이 만들어집니다.

관련 문제