C#编程之开发COM组件注册
白羽 2018-07-10 来源 :网络 阅读 3706 评论 0

摘要:本文将带你了解C#编程之开发COM组件注册 ,希望本文对大家学C#/.Net有所帮助。




一、组件注册 运行指令: gacutil /i DLL路径\HK.NetPBDemo.dll 将这个DLL加入的全局缓存里 regasm DLL路径\HK.NetPBDemo.dll 注册这个dll

附:以上11个步骤即可完成COM组件在本机的环境下注册并提供调用。

1、 若要在其他机器使用必须把编译的“DLL”、“TLB”文件一并复制在目标机器(已安装.Net Framework环境)并放在需调用的程序根目录; 2、 在目标机器“c:\WINDOWS\Microsoft.Net\Framework\v4.0.3.319”下找到“RegAsm.exe”

3、 运行CMD打开指令窗,讲路径定位到“c:\WINDOWS\Microsoft.Net\Framework\v4.0.3.319”

运行指令:regasm.exe DLL路径\ HK.NetPBDemo.dll。 【注册成功】

二、 RegAsm安装卸载办法 安装

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe "C:\Program Files\MyDllFolderName\MyDllName.dll" /tlb

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "C:\Program Files\MyDllFolderName\MyDllName.dll" /tlb

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe "C:\Program Files\MyDllFolderName\MyDllName.dll" /tlb

卸载

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe "C:\Program Files\MyDllFolderName\MyDllName.dll" /u

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "C:\Program Files\MyDllFolderName\MyDllName.dll" /u

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe "C:\Program Files\MyDllFolderName\MyDllName.dll" /u

针对不同的组件编译环境,选择相应的regasm进行注册和卸载,参数详见

三、 gacutil.exe的位置

如果我们需要用gacutil去注册dll ,就需要使用Visual Studio的Command Prompt,前提是需要安装Visual Studio,但是客户端上一般是没有安装VS的,所以你就需要将gacutil的文件夹拷贝到部署的客户机上。在C盘搜索gacutil.exe,我们会搜索到三个文件,其中有一个是正确的,路径如下: [html] view plaincopy C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools
(这是WIN7,VS2010环境下)。里面就有gacutil.exe。

四、RA0000错误:

在电脑上装有VS 2008和VS 2010.使用VS 2010编写了一个C# com组件:MyCom(基于.net framework4.0),然后使用VS 2008的命令提示工具运行命令:regasm MyCom,结果提示错误:RegAsm:error RA0000,“MyCOM”不是有效的.net程序集。开始百思不得其解。后来才醒悟到VS 2008的命令提示工具运行的regasm.exe是vs2008版本,它可能注册不了基于.net framework4.0的C# com组件。后来发现确实是这样的。如果一台机子上装有VS 2008和VS 2010,那么它就有两个版本的regasm.exe,分别存放的位置是C:\Windows\Microsoft.NET\Framework\v2.0.50727和C:\Windows\Microsoft.NET\Framework\v4.0.30319.使用VS 2010版本的regasm能注册vs2008编写的C# com组件,但是使用vs2008版本的regasm注册基于.net framework4.0的C# com组件。

**注:网上很多人都说组件的注册命令如:regasm /codebase XXX.dll 或者 regasm /codebase XXX.dll /regfile:xxx.reg 然后通过注册表导入到方式注册。但是经过无数次的测试,使用前面两种形式执行命令行,命令行是提示成功了,但通过RegDllView工具查看发现找不到,而实际组件确实没有注册。但把命令行改成了:regasm /code XXX.dll 居然成功了!!!! ,此外,若想注册为全局的dll,在执行regasm 之前 需要执行:gacutil -i XXX.dll **


以上就介绍了C#.NET的相关知识,希望对C#.NET有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言C#.NET频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程