• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
人生之路,职业之路
读书使人充实,交谈使人机敏,写记使人精确;
“动因+兴趣”——决心-持之以恒-见效
博客园    首页    新随笔    联系   管理    订阅  订阅
(原创)C#程序集部署方式(1)
如何部署程序集?怎样创建全局程序集?

程序集的部署方式
   一个程序集有两种部署方式:
   a)私有方式
   和应用程序部署在同一目录下的程序集称作私有部署程序集。弱命名程序集只能进行私有部署。
  
   b)全局方式
   全局部署方式将程序集部署在一些CLR已确知的地方,当CLR搜索程序集时,它会知道到这些地方去找。强命名程序集既可以进行私有部署,也可以进行全局部署。

如果多个程序需要共用DLL时,就需要采用全局缓存程序集。

可以通过“控制面板/管理工具/.net Framework 2.0 Configuration”来查看当前计算机中的全局缓存程序集。

全局程序集查看目录在<system dir>/assembly/下面,如果是强命名的程序集,可直接将dll文件拖到本目录下,这样该dll就成为全局缓存程序集了。

全局程序集必须是强名称的,可以通过用强命名实用工具
   (Strong Name Utility,即SN.exe,.NET SDK自带)产生的密钥。
   下面简要介绍一下SN.exe的一些用法。 要产生一个公钥/私钥对:
  
   a)SN –k MyCompany.Keys
   该命名告诉SN.exe创建一个名为MyCompany.keys的文件。MyCompany.keys文件将包含以对以二进制格式存储的公有密钥和私有密钥。
  
   b)查看公有密钥:
   首先生成一个只包含公有密钥的文件: SN –p  MyCompany.keys MyCompany.PublicKey
   然后用-tp参数查看:SN –tp MyCompany.PublicKeys
   Public key is  
   00240000048000009400000006020000002400005253413  
   10004000001000100bb7214723ffc13901343df4b9c464ebf  
   7ef4312b0ae4d31db04a99673e8163768cc0a2a7062e731d  
   beb83b869f0509bf8009e90db5c8728e840e782d2cf928dae  
   35c2578ec55f0d11665a30b37f8636c08789976d8ee9fe9a5  
   c4a0435f0821738e51d6bdd6e6711a5acb620018658cce93  
   df37d7e85f9a0104a5845053995ce8  
   Public key token is 2dc940d5439468c2
  
   创建好了公钥/私钥对,创建强命名程序集就很容易了。只需要把System.Reflection.AssemblyKeyFileAttribute特性加入到源代码中就可以了:[assembly:AssemblyKeyFile("MyCompany.keys")]
  
   说明:公钥/私钥对文件的扩展名可以是任意的(也可以没有),因为编译的时候都是以元数据的格式读取的。

posted on 2008-02-04 11:15  FreeBird  阅读(581)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3