Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass“;无法嵌入_C#_Arcgis_Esri_Arcobjects - Fatal编程技术网

C# &引用;ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass“;无法嵌入

C# &引用;ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass“;无法嵌入,c#,arcgis,esri,arcobjects,C#,Arcgis,Esri,Arcobjects,我在C#中为arcmap制作了一个插件应用程序,并尝试连接我的文件地理数据库。因此,当我尝试运行它时,我得到了以下错误: Error 1 Interop type 'ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass' cannot be embedded. Use the applicable interface instead. 然后是外接程序的路径 我以前从未见过这种错误,我想知道到底出了什么问题 这是它的主要代码: pu

我在C#中为arcmap制作了一个插件应用程序,并尝试连接我的文件地理数据库。因此,当我尝试运行它时,我得到了以下错误:

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();
我希望有人能给我一个解释这个错误,也可能在我的情况下修复


出了什么问题?

看起来ESRI dll已嵌入到您的组件中。 假设您正在使用Visual Studio- 选择引用的dll,并在其属性中将“嵌入互操作类型”设置为False


请注意,这将为需要放在程序集旁边的DLL创建一个互操作文件。

您可以尝试删除
Class
后缀。 替换

IWorkspaceFactory workspaceFactory=新文件gdbWorkSpaceFactoryClass()

IWorkspaceFactory workspaceFactory=新文件gdbWorkSpaceFactory()

迈克尔·彼得罗塔的回答解释了原因


以下是类似的答案:,。

尝试用
FileGDBWorkspaceFactory
替换
FileGDBWorkspaceFactory
。“我猜有这样的问题,@johny this为我解决了。如果你能提供这个答案,我很乐意接受。