C# &引用;ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass“;无法嵌入
我在C#中为arcmap制作了一个插件应用程序,并尝试连接我的文件地理数据库。因此,当我尝试运行它时,我得到了以下错误: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
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为我解决了。如果你能提供这个答案,我很乐意接受。