程序集注册工具 (Regasm.exe)

摘要:
忽略此选项会导致Regasm。exe在程序集中注册可创建的类。注意Regasm。exe命令行选项不区分大小写。可以通过导入在计算机上更新注册表。reg文件。当指定/tlb选项时,Regasm。exe生成并注册一个类型库来描述在程序集中找到的类型。君主制。Exe将生成的类型库放置在当前工作目录或为输出文件指定的目录中。注册COM使用的程序集时,RegasmExe会将一些项添加到本地计算机的注册表中。每次注册新版本的程序集时,Regasm。exe为新版本创建子密钥。

/* from: http://msdn.microsoft.com/zh-cn/library/tzat5yw6(VS.80).aspx */

程序集注册工具读取程序集中的元数据,并将所需的项添加到注册表中。注册表允许 COM 客户程序以透明方式创建 .NET Framework 类。类一经注册,任何 COM 客户程序都可以使用它,就好像该类是一个 COM 类。类仅在安装程序集时注册一次。程序集中的类实例直到被实际注册时,才能从 COM 中创建。

regasm assemblyFile [options]

参数

参数 说明

assemblyFile

要向 COM 注册的程序集。

选项 说明

/codebase

在注册表中创建一个 Codebase 项。Codebase 项指定未安装到全局程序集缓存中的程序集的文件路径。如果随后要安装正在注册到全局程序集缓存中的程序集,则不应指定此选项。用 /codebase 选项指定的 assemblyFile 参数必须是具有强名称的程序集

/registered

指定此工具将仅引用已经注册的类型库。

/asmpath:directory

指定包含程序集引用的目录。必须和 /regfile 选项一起使用。

/nologo

取消显示 Microsoft 启动标题。

/regfile [:regFile]

为程序集生成指定的 .reg 文件,该文件包含所需的注册表项。指定此选项不更改注册表。此选项不能与 /u 选项或 /tlb 选项一起使用。

/silent/s

取消显示成功消息。

/tlb [:typeLibFile]

从指定的程序集生成类型库,该类型库包含在程序集中定义的可访问类型的定义。

/unregister/u

注销在 assemblyFile 中找到的可创建类。省略此选项将导致 Regasm.exe 注册程序集中的可创建类。

/verbose

指定详细模式;当用 /tlb 选项指定时,显示所有需要为其生成类型库的引用程序集的列表。

/?/help

显示该工具的命令语法和选项。

Note注意

Regasm.exe 命令行选项不区分大小写。只需提供足够的选项来唯一标识它。例如,/n 等效于 /nologo,而 /t:outfile.tlb 等效于 /tlb:outfile.tlb

备注

可以使用 /regfile 选项生成包含注册表项的 .reg 文件,而不是直接对注册表进行更改。通过注册表编辑器工具 (Regedit.exe) 导入 .reg 文件,可以在计算机上更新注册表。请注意,.reg 文件不包含任何可由用户定义的注册函数完成的注册表更新。注意,/regfile 选项只为托管类发出注册表项。此选项不为 TypeLibIDInterfaceID 发出注册表项。

指定 /tlb 选项时,Regasm.exe 生成并注册一个类型库,对在程序集中找到类型进行描述。Regasm.exe 将生成的类型库放到当前的工作目录中或为输出文件指定的目录中。为引用其他程序集的程序集生成类型库可能导致同时生成几个类型库。可使用类型库向开发工具(如 Visual Studio 2005)提供类型信息。如果正在注册的程序集是由类型库导入程序 (Tlbimp.exe) 产生的,则不应使用 /tlb 选项。如果程序集是从类型库导入的,则不能从它导出类型库。除了类型库导出程序 (Tlbexp.exe) 不能注册它产生的类型库外,使用 /tlb 选项同使用 Tlbexp.exe 和 Regasm.exe 的效果相同。如果使用 /tlb 选项注册某个类型库,则可将 /tlb 选项和 /unregister 选项一起使用,以注销该类型库。将两个选项一起使用将注销类型库和接口项,这样可较大程度地清理注册表。

当您注册一个程序集供 COM 使用时,Regasm.exe 会在本地计算机的注册表中添加一些项。更具体地说就是,它创建与版本相关的注册表项,这些项允许在一台计算机上并行运行同一程序集的多个版本。第一次注册程序集时,会为该程序集创建一个顶级项并为这个程序集版本创建一个唯一的子项。每次注册该程序集的新版本时,Regasm.exe 都为新版本创建一个子项。

例如,假设您要注册一个版本为 1.0.0.0 的托管组件 myComp.dll 供 COM 使用。后来,您又注册版本为 2.0.0.0 的 myComp.dll。您确定计算机上的所有 COM 客户端应用程序都要使用 2.0.0.0 版本的 myComp.dll,并且决定注销 myComponent.dll 版本 1.0.0.0。此注册表方案允许您注销 myComp.dll 版本 1.0.0.0,这是因为注销操作只移除 1.0.0.0 版本子项。

使用 Regasm.exe 注册程序集之后,可以将该程序集安装在全局程序集缓存中,以便可以从任何 COM 客户端激活它。如果程序集仅准备由单个应用程序激活,则可以将它放到该应用程序的目录中。

示例

下面的命令注册 myTest.dll 中包含的所有公共类。

regasm myTest.dll

下面的命令生成文件 myTest.reg,该文件包含所有必要的注册表项。此命令不更新注册表。

regasm myTest.dll /regfile:myTest.reg

下面的命令注册 myTest.dll 中包含的所有公共类,并生成和注册类型库 myTest.tlb,该类型库包含 myTest.dll 中定义的所有公共类型的定义。

regasm myTest.dll /tlb:myTest.tlb

免责声明:文章转载自《程序集注册工具 (Regasm.exe)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇An exception was thrown while activating Al.Veneer.Cad.PlateTypes.CadPlateTypeController. .....abpcorepcntl_fork()函数说明下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vc6.0安装过程中出现的问题——解决

这是我在安装vc6.0过程中曾经与到的几个问题。问题的答案是我从网上搜到的然后总结了一下。希望能够对仍然没有解决问题的朋友有所帮助。 问题一:Thelanguagedll'vb6chs.dll'couldnotbefound。解决方法:在安装文件夹中搜索vb6chs.dll文件然后复制到 c:windows/system32/文件夹中。也可以到已经安装好的...

构建安全的数据访问配置管理(六)

数据库连接字符串是针对数据访问代码主要考虑的配置管理问题。应认真考虑这些字符串的存储位置以及如何保护它们(特别是当它们包括凭据时)。要提高加密管理安全性: •使用 Windows 身份验证。 •确保连接字符串的安全。 •使用受限制的 ACL 确保 UDL 文件的安全。 使用 Window 身份验证 使用 Windows 身份验证时,系统会为您管理凭据,而且...

Radmin密码破解新招

Radmin 是一款很不错的服务器管理无论是 远程桌面控制 还是 文件传输速度都很快 很方便这样也形成了 很多服务器都装了 radmin这样的现在你说 4899默认端口 没密码的 服务器你上哪找?大家都知道radmin的密码都是32位md5加密后存放在注册表里的具体的表键值为 HKLMSYSTEMRAdminv2.0ServerParameters那在攻陷...

文件夹重定向失败解决方案

  系统:Win7 原本想将Administrator里的我的文档位置移动到D盘我的文档,结果目标选择了D盘。再想将其改成D:我的文档 时,出现“无法将父级重定向到后代,指定的路径无效”的提示,想恢复成默认,系统又说:“无法生成 D:System Volume Information常规子文件夹的列表,拒绝访问。 解决办法:修改下面两个键值的注册表,将里...

离线修改注册表

注册表存储数据存放在%systemroot%system32config 目录下,而用户的当前设定保存在用户配置目录下的ntuser.datBCD-Template (xp以后的机器上有,win10等)components (xp以后的机器上有,同上)Ntuser.datsystem 对应HKLMsystemsoftware 对应HKLMSoftwared...

解决ArcGIS中因SDE或数据库配置问题而导致服务宕掉的一种思路

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.背景 最近连续有两个项目现场出现了AGS服务荡掉的问题,一个是通州现场,一个是福州现场。 1.1通州现场的问题描述和解决思路 通州现场环境为ArcGIS9.2,使用IMS发布的地图服务,其问题表现为每隔两天左右,其地形图服务...