发新帖

[C#/ASP.NET] C# RegAsm注册dll组件

零下一度 2022-12-2 1026


功能:程序集注册工具(Regasm.exe),读取程序集中的元数据,并将所需的项添加到注册表中

使用REGASM.EXE注册工具,注册  E:\ClassLibrary1.dll 的COM组件


32位注册方法 

C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm  /codebase "E:\ClassLibrary1.dll"

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /codebase "E:\ClassLibrary1.dll"

64位注册方法 

C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe /codebase "E:\ClassLibrary1.dll"



使用批处理命令来注册程序

@echo off

set path = C:\Windows\Microsoft.NET\Framework\v2.0.50727\;%path%

RegAsm /codebase E:\ClassLibrary1.dll

pause

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

egsvr32.exe是windows自带的activex注册和反注册工具

regsvr32的用法为:

"regsvr32 [/s] [/n][/u] dllname”。其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。

参数有如下意义:

/u——反注册控件

/s——不管注册成功与否,均不显示提示框

/c——控制台输出

/i——跳过控件的选项进行安装(与注册不同)

/n——不注册控件,此选项必须与/i选项一起使用

当 使用 Regsvr32.exe 时,它会尝试加载该组件并调用它的 DLLSelfRegister 函数。如果此尝试成功,Regsvr32.exe 会显示一个指示成功的对话框。如果此尝试失败,Regsvr32.exe 会返回一条错误消息,其中可能会包括一个 Win32 错误代码。

以下列表介绍了 RegSvr32 错误消息和可能的原因。

Unrecognized flag:/invalid_flag

键入的标志或开关组合无效(请参阅本文中的“Regsvr32.exe 的用法”一节)。

No DLL name specified.

未包括 .dll 文件名(请参阅本文中的“Regsvr32.exe 的用法”一节)。

Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.

Dllname不是.dll 或.ocx 文件。例如,键入 regsvr32 wjview.exe 就会生成该错误消息。

例 如,键入regsvr32 icwdial.dll 后就会返回该错误消息,因为 Icwdial.dll 文件不能自行注册。如果您怀疑内存中有损坏的Dllname 版本,请尝试重新启动计算机,或重新提取该文件的原始版本。如果您运行的是 Windows NT,可能需要使用 Microsoft Windows NT Server 4.0 资源工具包 中的 Kill 或 Pview 工具。有关其他信息,请单击以查看以下 Microsoft 知识库文章:197155 如何终止孤立进程OleInitialize failed (or OleUninitialize failed).

Regsvr32 必须先初始化COM 库,然后才能调用所需的 COM 库函数并在关闭时撤消对该库的初始化。


@博客园




最新回复 (0)
返回
零下一度
主题数
940
帖子数
0
注册排名
1