如何用RegAsm.exe在开发/生产环境中注册C#/VB.NET开发的DLL
来源:互联网 发布:快手作品植入淘宝链接 编辑:程序博客网 时间:2024/05/21 10:35
原文地址:http://www.geeksengine.com/article/register-dll.html 感谢原作者
创建C#或VB.Net DLL后,您需要在目标计算机上注册。 您可以使用Microsoft的RegAsm.exe实用程序。
Regasm.exe是一个程序集注册工具,用于读取程序集中的元数据。并将所需的项添加到注册表中。注册表允许允许COM客户端(VB6应用程序或Microsoft VBA,例如Access,Excel等)创建.NET Framework类。类一经注册,则在任何 COM 客户程序都可以使用它,就好像该类是一个 COM 类。类仅在安装程序集时注册一次。程序集中的类实例直到被实际注册时,才能从 COM 中创建。
说明:
Regasm.exe所在路径没有被系统添加PATH环境变量中,因此,REGASM命令无法识别。使用时,需要DOS窗口切换到其存储路径后才能运行运行。其一般存储的路径为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\ 系统的版本不同,运路径中的数字可能会有一些差异,如下面说明:
- 2.0,3.0和3.5等.Net Framework使用相同的RegAsm.exe,它位于.Net FrameworkV2.0文件夹里面如下路径。分X86/64位Framework
C:\Windows\Microsoft.NET\Framework(32位Framework框架)\ V2.0.50727 \ RegAsm.exe
或者
C:\Windows\Microsoft.NET \Framework64(64位Framework框架)\ V2.0.50727 \ RegAsm.exe
- 4.0以上版本的.Net Framework使用一个新的RegAsm.exe,它位于.Net FrameworkV4.0文件夹中。
C:\Windows\Microsoft.NET\Framework(32位Framework框架)\v4.0.30319 \ RegAsm.exe
或者
C:\Windows\Microsoft.NET\Framework64(64位Framework框架)\v4.0.30319 \ RegAsm.exe
1:RegAsm.exe和DLL映射
如果您收到此错误“RegAsm:错误RA0000:无法加载”c:\ Windows\ system32 \ SimpleCalc.dll因为它不是一个有效的.NET程序集“,您可能在使用.Net4版本以下的 RegAsm.exe进行 注册.Net4以上版本创建的DLL。
所以当注册由.Net Framework4 以上版本创建的DLL程序集时,我们不能使用.Net Framework 2.0 / 3.0 / 3.5文件夹中的RegAsm.exe进行注册。
2:如何运行RegAsm.exe
要执行RegAsm.exe,请用管理员权限打开一个命令提示符窗口,并进行切换到到RegAsm.exe所在的文件夹并运行它(否则将获得“RegAsm不被识别为内部或外部命令,可操作的程序或批处理文件”错误消息)。
切换到RegAsm.exe所在的文件夹并运行它
假设我已经将我的DLL添加到文件夹C:\ Windows\ system32,那么我可以运行以下命令:
C:\ Windows\ Microsoft.NET \ Framework \ v4.0.30319 \ RegAsm.exe SimpleCalc.dll / codebase
请注意,您不需要在命令中指定C:\ Windows\ system32,因为它是系统文件夹。 RegAsm.exe将自动查找C:\ Windows\ system32目录中的SimpleCalc.dll。
/ codebase参数是一个可选参数,它将关于DLL的信息添加到Windows注册表中,该注册表指定了磁盘上程序集的路径。
3:Regasm也可用于注销DLL
如果您获得的DLL没有与其关联的类型库文件,则可以使用Regasm实用程序和/ tlb选项生成。
C:\ Windows\ Microsoft.NET \ Framework \ v4.0.30319 \ RegAsm.exe SimpleCalc.dll /tlb:SimpleCalc.tlb
请注意,要从DLL导出类型库,您需要在计算机上具有管理员权限,否则将收到此类错误“RegAsm:error RA0000:保存导出的类型库时出错:访问被拒绝... “因为您运行regasm.exe的帐户无权写入该文件夹。
请注意,您可以为.Net Framework 下的egAsm.exe创建环境变量,以简化DLL注册。
4:Regasm也可使用批处理命令来注册程序
如果需要在多台电脑上进行注册,或者要注册的DLL组件比较多的情况下,可以使用如下的批处理命令进行注册。
@echo off
set path = C:\Windows\Microsoft.NET\Framework64\v4.0.30319\;%path%
RegAsm /codebase C:\Windows\System32\SimpleCalc.dll
pause
::C:\Windows\System32\SimpleCalc.DELL为组件和存放全路径
::C:\Windows\Microsoft.NET\Framework64\v4.0.30319\;为REGASM.EXE所在文件夹路径。
祝您编码快乐!
其他参考资料:
https://msdn.microsoft.com/zh-cn/library/tzat5yw6(VS.80).aspx
http://jingyan.baidu.com/article/09ea3ede65a7c8c0aede39c1.html
其他文章系列:
(1)如何正确地创建Access或Excel中的DLL(或在任何Microsoft Office应用程序或VB6中使用)http://blog.csdn.net/kongwei521/article/details/77921436
(2)如何正确地将C#或VB.Net的DLL在开发机器或者生成环境机器中注册 http://blog.csdn.net/kongwei521/article/details/77929273
(3)如何正确地在Access VBA或Excel VBA内引用访问C#或VB.Net写的DLL http://blog.csdn.net/kongwei521/article/details/77929277- 如何用RegAsm.exe在开发/生产环境中注册C#/VB.NET开发的DLL
- 如何正确的在VBA/VB中引用C#/VB.NET开发的DLL
- regasm注册.net下的dll
- regasm注册.net下的dll
- regasm注册.net下的dll
- REGASM注册DLL的问题
- 在vb.net中如何用Graphics画图(
- 在VB应用程序中调用VC环境下开发的DLL
- 在VB应用程序中调用VC环境下开发的DLL
- 在VB应用程序中调用VC环境下开发的DLL
- 在VB应用程序中调用VC环境下开发的DLL
- 如何用VB开发游戏外挂
- 如何用VB开发游戏外挂
- 再谈在VB中调用VC++开发的DLL
- 再谈在VB中调用VC++开发的DLL
- 再谈在VB中调用VC++开发的DLL
- 再谈在VB中调用VC++开发的DLL
- [VB.NET]如何用VB.net 执行access中宏
- hibernate criteria 多表关联查询
- LWC 51:683. K Empty Slots
- PSO优化SVM多分类器的参数实例
- llvm:Call Graph And Control Flow Graph
- llvm:Data Flow Graph
- 如何用RegAsm.exe在开发/生产环境中注册C#/VB.NET开发的DLL
- mac下无法远程桌面连接win10的解决办法
- centos7上docker安装和使用教程
- NonDecreasingArray
- Android自定义View-onLayout、onSizeChange、onDraw介绍
- 1-概述&程序构成基本元素
- 第2周第2次课 线性表(2)
- 机器学习深入与强化--数学基础(4)
- 求出用数字0至9组成的没有重复数字的三位偶数,并以每行10个数输出这些数;