ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用gacutil把COM组件注册到全局缓存GAC中

2022-05-18 16:04:35  阅读:120  来源: 互联网

标签:文件 exe COM gacutil regasm DLL 注册 GAC


使用gacutil把COM组件注册到全局缓存GAC中

我们在编写软件的时候,有时候需要调用COM组件,那就需要注册了,注册有两种,一种是使用regasm 在程序运行的时候注册,参考“pb调用C#编写的DLL类库“,不过受路径的限制。还有一种注册方式,使用gacutil工具把DLL注册到全局缓存中,这样只要注册一次,在什么地方都可以跨文件调用了,不受路径的限制,比较方便,推荐使用这种。

 

 

使用gacutil注册有以下要求:

一、com程序集强签名。

1. 在项目调试完成后,使用sn.exe工具生成一个密钥。sn -k "生成的密钥的全路径"。
    如在命令行输入: sn -kD:/myKey.snk
2. 将密钥与项目的程序集进行关联:项目属性-->签名-->为程序集签名-->选择强名称密钥文件。
    此外,还有另外一种方法,就是在项目的AssemblyInfo.cs文件中,修改"AssemblyKeyFile"的属性。
    如:[assembly:AssemblyKeyFile("D://myKey.snk")]
3. 重新生成项目集。

二、使用gacutil.exe注册

1、gacutil.exe文件一般在“C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin”,把gacutil.exe拷贝到项目根目录即可(gacutil.exe需要安装net framwork x.xx SDK后才有,此文件夹中的gacutil.exe也可以复制直接用)

2、把regasm.exe和gacutil.exe一同拷贝到和DLL同目录下

3、编写注册类Bat文件(我用的是bat,这样可以直接运行,也可以在程序里调用这个bat)

gacutil /if MySql.Data.DLL

regasm  MySql.Data.DLL

pause

先把DLL放到全局缓存中,再注册。

4、编写注销类bat文件,需要注意的是,注销gac的时候,只需要写DLL文件的名字,不需要加“.dll”后缀

gacutil /uf MySql.Data

regasm /u MySql.Data.dll

pause

4、DLL注册到GAC之后,会在“C:\WINDOWS\assembly”文件夹下,注册之后可以打开看看需要注册的DLL有没有在这里。

以上就是用gacutil注册到全局GAC中的流程了,需要把这些文件放到同一目录,另外,因为在windows 7及以上的系统有管理员权限,所有在windows 7及以上需要以管理员身份运行,至于Bat怎么获取管理员身份运行,可以在网上搜搜。

标签:文件,exe,COM,gacutil,regasm,DLL,注册,GAC
来源: https://www.cnblogs.com/guanshan/p/guan2022-5-18.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有