zoukankan      html  css  js  c++  java
  • 使用gacutil把COM组件注册到全局缓存GAC中

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

    使用gacutil注册有以下要求:

    一、com程序集强签名。

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

    二、使用gacutil.exe注册

    1、gacutil.exe文件一般在“C:Program FilesMicrosoft Visual Studio 8SDKv2.0Bin”,把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:WINDOWSassembly”文件夹下,注册之后可以打开看看需要注册的DLL有没有在这里。

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

  • 相关阅读:
    1-5概率的公理化的定义
    1-4几何概型
    1-3古典概型
    求逆序对数量
    1-2事件的基本运算
    1001 害死人不偿命的(3n+1)猜想 (15 分)
    北京周末去哪儿 —— 国家博物馆
    北京周末去哪儿 —— 天安门广场
    angular中使用ckplayer播放器
    java MD5/AES/DES加解密汇总
  • 原文地址:https://www.cnblogs.com/zxf100/p/11675894.html
Copyright © 2011-2022 走看看