- ЭСРИ.В ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass " не может быть встроен
Я сделал приложение add in для arcmap на C# и попытался подключиться к своей файловой базе геоданных. Поэтому, когда я попытался запустить его, я получил эту ошибку:
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();
Я надеюсь, что кто-то может предоставить мне объяснение этого ошибка, а также возможное исправление в моем случае.
что происходит?
2 ответов
удалить Class
суффиксом.
Заменить
IWorkspaceFactory workspaceFactory = новый FileGDBWorkspaceFactoryClass();
С
IWorkspaceFactory workspaceFactory = новый FileGDBWorkspaceFactory();
здесь https://stackoverflow.com/a/958952/1017722 ответ Майкла Петротты объясняет, почему.
вот похожие ответы:тип взаимодействия не может быть встроенный, класс не может быть внедрен. Вместо этого используйте соответствующий интерфейс.
похоже, что dll ESRI была встроена в ваш assemly. Предполагая, что вы работаете с Visual Studio - Выберите библиотеку dll, на которую ссылаются, и в ее свойствах установите для" Embed Interop Types " значение False.
обратите внимание, что это создаст файл взаимодействия для этой DLL, который вам нужно будет поместить рядом с вашей сборкой.