Зарегистрировать dll / tlb - PullRequest
0 голосов
/ 16 мая 2011

Я пытаюсь зарегистрировать dll на основе ГИС на тестовом компьютере, и у меня возникают проблемы с загрузкой файла tlb с помощью ArcGIS 9.3.1 - ArcMap на тестовом компьютере.Когда я пытаюсь загрузить файл tlb, появляется сообщение «Новые объекты не добавлены» .Я создал файл dll с помощью Visual Studio 2010. Файл tlb прекрасно загружается на моем компьютере разработчика.Я регистрирую dll / tlb на тестовом компьютере с помощью команды cmd.exe (см. Ниже).

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe C:\Temp\My.dll /tlb:My.tlb/codebase

Регистрация отвечает как успешная, и элемент отображается в категории компонентов под командами MX.категория.Ниже приведен фрагмент кода COM GUID, который я использую в своем классе.

#Region "COM GUIDs"
    Public Const ClassId As String = "1bf94bdf-907c-4026-816f-50feb7a2a976"
    Public Const InterfaceId As String = "7ba8a4d5-d15c-4d95-a819-a3e7cbe84533"
    Public Const EventsId As String = "2ab51582-47e1-490c-899d-a80992c20fdf"
#End Region

Операционная система компьютера разработчика:

Microsoft Windows XP 32bit,Версия 5.1 - Пакет обновления 3

И

ОС тестового компьютера:

Microsoft Windows XP 64bit, Версия 5.2 - Пакет обновления 2

Нужно ли устанавливать Windows Update на компьютере разработчика (до 5.2) или в моей процедуре регистрации dll / tlb что-то не так?

Спасибо за помощь!

ОБНОВЛЕНИЕ:

Программное обеспечение ArcGIS на тестовом компьютере устанавливается в папку C: \ Program Files (x86).

1 Ответ

1 голос
/ 16 мая 2011

Я думаю, вам нужно зарегистрировать его, используя 64-битную версию RegASM на вашем целевом ПК.Вы должны найти его в:

C:\Windows\Microsoft.NET\Framework64\v2.0.50727
                                  ^^

Обратите внимание, что я предполагаю, что вы скомпилировали свой код в MSIL (выбрав AnyCPU в качестве платформы).Если вы скомпилировали его для целевого значения 32-bit, вам потребуется изменить это.

Это связано с тем, что 64-разрядный процесс не может найти регистрации, выполненные 32-разрядной версией RegAsm, и наоборот,

...