摘要:本文将带你了解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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号