首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寄存器dll/tlb

寄存器dll/tlb
EN

Stack Overflow用户
提问于 2011-05-16 14:04:21
回答 1查看 8.8K关注 0票数 0

我试图在测试计算机上注册一个基于地理信息系统的动态链接库,并且在测试计算机上加载带有ArcGIS 9.3.1 - ArcMap的tlb文件时遇到了问题。当我试图加载tlb文件时,它写为“New添加”。我使用Visual 2010创建了dll文件。tlb文件在我的开发人员计算机上加载良好。我正在使用cmd.exe命令在测试计算机上注册dll/tlb (见下文)。

代码语言:javascript
复制
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe C:\Temp\My.dll /tlb:My.tlb/codebase

注册回复为成功,项目列在MX命令类别下的组件类别中。下面是我在类中使用的COM部分代码。

代码语言:javascript
复制
#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更新(到5.2),还是我的dll/tlb注册方法有问题?

谢谢你的帮忙!

更新:

测试计算机上的ArcGIS软件安装在C:\Program (x86)位置下。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-16 14:06:55

我认为您需要在目标PC上使用64位版本的RegASM注册它。你应该在下列文件中找到它:

代码语言:javascript
复制
C:\Windows\Microsoft.NET\Framework64\v2.0.50727
                                  ^^

请注意,我假设您已经将代码编译为MSIL (通过选择AnyCPU作为平台)。如果已将其编译为目标32-bit,则需要对其进行更改。

这是因为64位进程无法找到32位版本的RegAsm执行的注册,反之亦然。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6018598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档