网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
snk文件和AssemblyInfo.cs文件的作用
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

snk文件在.net里面被用作存放密钥或密钥对的存储文件,生成密钥对snk文件可以用.net中的sn.exe命令,如“sn   -k   keyPair.snk”。  
   
  snk本身只是用来存放非对称密钥的,但在各个需要用到加密、签名的地方都可以使用:  
  用snk文件生成强命名程序集,这样一个assembly才可以被赋予full-trust属性,也可以被添加到GAC中。在VS.NET中生成 strong-named   assembly,只需要在AssemblyInfo.cs里面添加一下代码并编译即可:  
  [assembly:   AssemblyDelaySign(false)]  
  [assembly:   AssemblyKeyFile("..\\..\\keyPair.snk")]  
  [assembly:   AssemblyKeyName("")]  
 
强命名程序集的缘由: 目前Windows中出现的DLL Hell问题(两个不同的公司可能开发处具有相同名称的程序集,如果将相同名称的程序 集放置到同一个目录下,则会出现程序集覆盖现象,最后安装的程序集会覆盖前面的程序集,从而可能导致应用序不能正常运行)。由此看来,仅靠名称来区分程序 集是不足够的。CLR采取了强命名程序集的方式来唯一的表示程序集。强命名程序集包含四个标识:名称,版本号,语言文化标识和一个共有/私有密钥对。两种 程序集/两种部署方式:.Net支持两种程序集:弱命名程序集和强命名程序集(注:.Net框架中没有弱命名程序集,只是为了和强命名程序集相对应而 已)。弱命名程序集和强命名程序集在结构上是相同的。他们都采用PE文件格式,包含PE表头,CLR表头,元数据和清单表。区别在于:强命名程序集拥有一 个发布者的公钥/私钥签名对,他们用于唯一的标识程序集的发布者。通过公钥/私钥对,我们可以对程序集进行唯一的标识,安全策略和版本策略。

 如
using System.Reflection;
using System;
using System.Runtime.ConstrainedExecution;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
 
//是否符合公共语言规范(CLS)
[assembly: CLSCompliant(true) ]
//控制程序集中所有类型对COM的可访问性
[assembly: ComVisible(false)]
//代码的作者和这些代码的的开发人员之间的可靠协定
[assembly: ReliabilityContract(Consistency.WillNotCorruptState,Cer.MayFail)]
 
// 有关程序集的常规信息通过下列属性集
// 控制。更改这些属性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("TestPetShop.SQLServerDAL")]
[assembly: AssemblyDescription("T测试PetShop4.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("CCP")]
[assembly: AssemblyProduct("TestPetShop.SQLServerDAL")]
[assembly: AssemblyCopyright("版权所有 (C) CCP 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
 
// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 属性设置为 true。
[assembly: ComVisible(false)]
 
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("dc8b813c-f361-476f-8cf1-8fab3d57ced7")]
 
// 程序集的版本信息由下面四个值组成:
//
//      主版本
//      次版本
//      内部版本号
//      修订号
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
 

 程序集合的相关信息也可以直接点击项目属性里—应用车工内许—程序集信息   直接修改

  • 上一篇资讯: AssemblyInfo.cs文件的作用
  • 下一篇资讯: C#中类继承的规则
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号