程序集:
1.简单点理解就是DLL和EXE。并不是所有的dll都是程序集,里面有些是模块。
2.程序集里面就是 我们写的代码 自身的描述性文件 再就是包含的资源。换句话说 程序集=模块+特性
3.程序集特性就是,这个代码谁写的,干嘛用的,啥时候写的,可不可以买卖,在哪个国家卖 等等。
应用程序域:
4.我的理解就是让代码跑起来的地方。
5.也就是任务管理器里面的进程,用来加载程序集的,不过一个进程里面可以有多个应用程序域。
共享程序集
6.电脑里面很多dll不是只能一个程序用,这种就是共享的dll,为了要给一个唯一的名字来识别他(强名)
7.强名包括(程序集名称,版本号,公钥,文化)
(强名工具 sn) 创建强名: sn -k mykey.snk 这样自动生成一对 公钥/私钥
延迟签名:sn -p mykey.snk mykeypub.snk 提取公钥
sn -Vr xxx.dll 关闭签名验证功能
sn -R xxx.dll mykey.dll 重新签名
然后在VS发布设置里面 signing选项卡选择 mykey.pfx文件作为密钥。
8.我们电脑里面有个 全局程序集缓存GAC(global assembly cache),用来放这些dll文件的,安装应用的时候就放这里。
9.用啥子安装呢? 工具gacutil.exe
- gacutil/l 显示本电脑GAC所有的程序集
- gacutil/i /f mydll 安装mydll,/f 强制安装,有的话就直接覆盖
- gacutil/u mydll 卸载
10.安装好了就可以开始引用这个程序集了。
还是用gacutil.exe, gacutil /i xxx.dll /r FILEPATH C:...... "xxx"