• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
敬YES
Now Or Never
博客园    首页       联系   管理    订阅  订阅
C#高级编程-共享程序集强命名

     首先记一下查看程序集的命令:命令行输入ildasm,这是一个反汇编程序。此外,.net Reflector也是分析程序集的强大工具,可以将IL代码
反编译为C#,C++,VB。网址http://www.aisto.com/roeder/dotnet。 

     言归正传了,共享程序集需要进行强命名。要利用sn.exe产生密钥对。具体步骤:

  1. 创建类库,命名空间为Sharing,与建立普通类库过程一致。
  2. 创建强命名:生成公钥与私钥对,并对私钥做严格的保护。
       ①可以项目属性-》Signing->Sign the assembly,然后选择或者添加pfx文件即可。
       ②使用命令行工具:
       生成:sn -k e:\Study\AssemblyShared\Sharing\test1.keys 注意后面的路径要写明文件的完整路径。刚开始的时候总是fail,就是这个路径写的有问题导致的。  
  3. 查看公钥:sn -p  e:\Study\AssemblyShared\Sharing\test1.keys  e:\Study\AssemblyShared\Sharing\test1.key
  4. 然后使用 sn -tp命令可以查看公钥

        

     5.安装共享程序集,使用gacutil  /i   命令操作.刚开始会提示使用管理员账号操作,后来成功。      

     6.新建项目,使用该共享程序集。要注意将引用的属性LocalCopy设置为false。
    7。强命名用到的主要命令:
生成:sn -k keyfile.snk 公钥与私钥对

抽取公钥:sn -p keyfile.snk public.snk 从keyfile中抽取公钥保存到public.snk文件中,以对程序集进行迟签名

跳过验证:sn -Vr assembly 对assembly在开发用机上进行跳过验证处理,该assembly不是已签名的

签名:sn -r assembly keyfile.snk 对assembly 进行迟签名,这一步是在发布之前做

取消跳过验证:sn -Vu assembly 对assembly在开发用机上取消跳过验证,该assembly这时是已签名的

或取消所有:sn -Vx 取消所有验证


 

作者:陈敬(公众号:敬YES)
出处:http://www.cnblogs.com/janes/
博客文章仅供交流学习,请勿用于商业用途。如需转载,请务必注明出处。

posted on 2010-09-10 17:18  敬YES  阅读(1664)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3