ICode9

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

安装assembly/dll到GAC

2020-12-10 19:01:39  阅读:205  来源: 互联网

标签:assembly com 程序 dll 签名 https GAC


参考:https://www.cnblogs.com/zhaow/p/10177542.html
https://www.cnblogs.com/OpenCoder/p/8082654.html
https://docs.microsoft.com/en-us/dotnet/framework/tools/gacutil-exe-gac-tool

GAC(Global Assembly Cache)----全局程序集缓存
一般是想把dll安装部署到GAC中,以便其他程序调用,被放入到GAC中的dll,无论在何处被其他程序集引用,都可以保证自己能被CLR找到并且加载。
在一般情况下,GAC具有如下优点:
· 程序集被多处引用时,可有效减少内存成本。
· 通过发布者策略可以有效地发布程序集的最新版本。
· 同一程序集的多个版本可以共存,并且可以通过配置进行切换。
是否所有的程序集都可以被放入GAC中呢,答案是否定的。

添加到GAC步骤:

  1. 给dll 项目加强名称:
    1.1 获取强签名密钥:(提前已经有了直接在1.2中引用)
    使用sn.exe工具生成。此工具位于.Net Framework SDK 文件夹bin目录下 (eg.C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools)
    打开cmd,运行命令行 sn -k "[DriveLetter]:[DirectoryToPlaceKey][KeyName].snk"
     即: sn -k "生成的密钥的全路径"。 如在命令行输入: sn -k D:/myKey.snk
    2.1 将密钥与项目程序集关联: 项目属性->签名->为程序集签名-> 选择强签名密钥文件 ->勾选下面delay sign (delay dign状态的dll被其他程序引用会报错)
    2.2 重新编译项目,并把编译出来的dll进行强签名。(把需要public key 的assembly属性注释掉)

  2. 把强签名后的dll添加到GAC中
    2.1 使用gacutil.exe工具安装, 该工具为.net自带工具,位于SDK目录下(eg.C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools)
    打开命令行,cd 到该工具目录下,运行 gacutil /i [dllPath\dllname.dll], 安装成功后会提示安装成功。
    2.2 其他方法:
    参考链接:https://www.cnblogs.com/zhaow/p/10177542.html

  3. 安装完之后会在 C:\Windows\Microsoft.NET\assembly下的对应版本下看到。

标签:assembly,com,程序,dll,签名,https,GAC
来源: https://www.cnblogs.com/Whitney-wang/p/14116706.html

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

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

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

ICode9版权所有