程序集强命名与GAC
1、新建项目Other,在其中创建如下类:
using System;
using System.Collections.Generic;
using System.Text;
namespace Other.全局应用缓存
{
public class GAC
{
public string CallGAC()
{
return "GAC end";
}
}
}
2、强命名程序集:
在项目Other上,击右键,签名,为程序集签名,新建或者浏览密钥文件
也可以在SDK 命令提示中创建密钥,sn -k D:\CompanyA.keys,在此引用。vs2003:[assembly: AssemblyKeyFile
("D:\CompanyA.keys")]
编译,此时Other.dll已经是强命名程序集
3、共享程序集Other.dll:
将程序集(如:E:\个人文件夹\Code\企业级应用解决方案\Other\bin\Debug\Other.dll)直接拖入全局应用程序缓存(如:
C:\WINDOWS\assembly)
也可是在SDK 命令提示中完成,如:GACUtil /i E:\个人文件夹\Code\企业级应用解决方案\Other\bin\Debug\Other.dll
4、调用共享程序集Other.dll
新建Web项目MyWebProject,添加引用刚才创建的程序集Other.dll,比如:E:\个人文件夹\Code\企业级应用解决方案
\Other\bin\Debug\Other.dll,此时MyWebProject的web.config中有了:
<compilation debug="true">
<assemblies>
<add assembly="Other, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=43FC64574884C304"/></assemblies></compilation></system.web>
调用代码如下:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//使用反射,不需要引用
System.Reflection.Assembly assembly = System.Reflection.Assembly.Load("Other, Version=1.0.0.0, Culture=neutral, PublicKeyToken=43FC64574884C304");
this.Response.Write("利用反射,从GAC中载入程序集" + assembly.GlobalAssemblyCache);
}
protected void Button2_Click(object sender, EventArgs e)
{
//必须引用,网站MyWebProject部署之后,可以删除调E:\个人文件夹\Code\企业级应用解决方案
\Other\bin\Debug\Other.dll
Other.全局应用缓存.GAC gac = new Other.全局应用缓存.GAC();
string result = gac.CallGAC();
this.Response.Write(result);
}
}
程序集强命名与GAC相关推荐
- 什么是.NET 程序集强签名
http://blog.csdn.net/vipxiaotian/archive/2007/07/12/1686071.aspx 用强名称来给程序集签名即谓之程序集强签名! 那什么是强名称,签名又有什 ...
- VS源码添加程序集强签名
1.打开"开始"菜单或者右击"开始"菜单选择"搜索",在搜索栏输入"开发人员命令提示",选择"VS2015开发 ...
- .Net程序集强签名详解
强签名: 1. 可以将强签名的dll注册到GAC,不同的应用程序可以共享同一dll. 2. 强签名的库,或者应用程序只能引用强签名的dll,不能引用未强签名的dll,但是未强签名的dll可以引用强签名 ...
- [转]程序集之GAC---Global Assembly Cache
本文转自:http://www.cnblogs.com/jhxk/articles/2564295.html 1.什么是GAC?GAC解决什么问题? GAC全称为: Global Assembly C ...
- C#图解教程 第二十一章 命名空间和程序集
命名空间和程序集 引用其他程序集 在第1章中,我们在高层次上观察了编译过程.编译器接受源代码文件并生称名称为程序集的输出文件.这一章中,我们将详细阐述程序集以及它们是如何生成和部署的.你还会看到命名空 ...
- 不使用GACUtil.exe,如何部署和卸载程序集到GAC中
在Windows Server 2008和Windows Server 2008 上, 部署程序集到GAC中时,如果以直接将程序集拖拽到GAC的方式部署,将会得到Access is denied的错误 ...
- (转载)20分钟读懂程序集
转自:http://www.cnblogs.com/damonlan/p/3221347.html 说到程序集,我刚开始对这个名词特别的郁闷!~.然后 前些天花了些时间 好好读了一下,现在比较清晰了, ...
- 强名称程序集(strong name assembly)——为程序集赋予强名称
引言: 在曾经的项目开发中,在程序集中见到过一个后缀为*.snk的文件.当时看这个文件的图标.感觉可能是企业内部保护版权啥的一种方式. 一,强程序集攻克了哪些问题? 1,唯一标识一个程序集 2,放置程 ...
- CLR via C# 边读边想 03 - 本地程序集和强命名程序集
Two Kinds of Assemblies, Two Kinds of Deployment CLR 支持两种类型的程序集:weakly named assemblies and strongly ...
最新文章
- 关于异常Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
- 最短路径 的一些解法和特殊情况
- oracle备份 ram,Oracle备份时出现AIX系统的3D32B80D错误
- [渝粤教育] 盐城工学院 无机及分析化学C 参考 资料
- 如何将一棵LSM-Tree塞进NVM
- SQL SERVER的SID和表的所有权问题
- 计算机网络环境中学科教学,浅谈基于计算机网络环境下的农村小学的科学学科教育...
- 二级倒立摆建模(二)
- vue结合vue-amap调用高德地图行政区划分并添加标记点
- 单片机上的8位数码管显示数字12345678
- 群晖万兆文件服务器,NAS进阶 篇三:2019年最具性价比的NAS硬件是什么暨黑群晖万兆搭建经验介绍...
- LATEX编译出现Undefined control sequence.
- 战舰少女r服务器维修,战舰少女r修理时间怎么计算?舰船受损维修时间公式分析[多图]...
- python爬虫scrapy爬取新闻标题及链接_18Python爬虫---CrawlSpider自动爬取新浪新闻网页标题和链接...
- Python程序员看见一个好看的手机壁纸网站,开撸!
- 替代 XShell 的两款优秀工具
- 妹子:我都这样给你讲类加载器了,还不懂!
- 时间序列分析实验报告总结_时间序列实验报告.doc
- 【矩阵论笔记】零化多项式
- 登上 Science,AlphaZero完整论文首次发布