我正在尝试在测试计算机上注册基于GIS的dll,并且我在测试计算机上使用ArcGIS 9.3.1-ArcMap加载tlb文件时遇到问题。当我尝试加载tlb文件时,说“没有添加新对象”。我使用Visual Studio 2010创建了dll文件.tlb文件在我的开发人员计算机上正常加载。我正在使用cmd.exe命令在测试计算机上注册dll / tlb(见下文)。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe C:\Temp\My.dll /tlb:My.tlb/codebase
注册回复成功,该项目列在MX Commands类别下的Component Category中。下面是我在班上使用的COM GUIDs部分代码。
#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 32位, 版本5.1 - Service Pack 3
和
测试计算机的操作系统是:
Microsoft Windows XP 64位, 版本5.2 - Service Pack 2
我是否需要在开发人员计算机上执行Windows Update(至5.2)或者我的dll / tlb注册方法是否有问题?
感谢您的帮助!
更新
测试计算机上的ArcGIS软件安装在C:\ Program Files(x86)位置。
答案 0 :(得分:1)
我认为您需要在目标PC上使用64位版本的RegASM进行注册。你应该在:
找到它C:\Windows\Microsoft.NET\Framework64\v2.0.50727
^^
请注意,我假设您已将代码编译为MSIL(通过选择AnyCPU
作为平台)。如果您已将其编译为目标32-bit
,则需要更改它。
这是因为64位进程无法找到32位版本的RegAsm执行的注册,反之亦然。