当你把一个程序集放进GAC(全局程序集缓存)时,就要加强名(也就是签名),在GAC中的程序集可以被所有程序引用访问(相当于以前COM组件在注册表里注册一样),如果不放进GAC,刚所有使用这个程序集都要复制这个程序集(也就是私有程序集),所以用不用强名要看情况而定.
如果不是 要把.dll共享 可以不使用强名
强名称是为了你的Dll文件的安全,一般我们的dll文件,随便在哪只要引用就可以用
但如果用了强名称的话,dll 就会有一个秘钥,其它人就不能引用了
如何创建带有强名称的程序集
可以向程序集分配称为强名称的加密签名,它为程序集提供名称的唯一性并防止他人借用您的程序集名称(名称欺骗)。如果您正在部署一个将被同一台计算机上的多个应用程序共享的程序集,则该程序集必须有强名称。即使只在您的应用程序中使用该程序集,使用强名称也可确保加载该程序集的正确版本。
生成具有强名称的程序集的第一步是获得加密密钥对。.NET Framework SDK 包括一个可用来生成密钥对的“强名称”工具 (Sn.exe)。由“强名称”工具生成的密钥对可以保留在文件中,您也可以将它存储在本地计算机的“加密服务提供程序”(CSP) 中。下面的命令使用“强名称”工具生成一个新的密钥对并将它存储在名为 TestKey.snk 的文件中:
sn -k Testkey.snk
在获得密钥对后,需要向源文件中添加正确的自定义属性,以便编译器发出带有强名称的程序集。根据用于签名的密钥对是包含在文件中还是 CSP 内的密钥容器中,正确地选择属性。对于存储在文件中的密钥,请使用 System.Reflection.AssemblyKeyFileAttribute。对于存储在 CSP 中的密钥,请使用 System.Reflection.AssemblyKeyNameAttribute。
(*) 如果未指定密钥,则程序集不会被签名。
// (*) KeyName 是指已经安装在
// 计算机上的加密服务提供程序(CSP)中的密钥。KeyFile 是指包含
// 密钥的文件。
// (*) 如果 KeyFile 和 KeyName 值都已指定,则
// 发生下面的处理:
// (1) 如果在 CSP 中可以找到 KeyName,则使用该密钥。
// (2) 如果 KeyName 不存在而 KeyFile 存在,则
// KeyFile 中的密钥安装到 CSP 中并且使用该密钥。
// (*) 要创建 KeyFile,可以使用 sn.exe(强名称)实用工具。
// 在指定 KeyFile 时,KeyFile 的位置应该
// 相对于“项目输出目录”。项目输出
// 目录的位置取决于您是在使用本地项目还是 Web 项目。
// 对于本地项目,项目输出目录定义为
// <Project Directory>\obj\<Configuration>。例如,如果 KeyFile 位于该
// 项目目录中,应将 AssemblyKeyFile
// 属性指定为 [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
// 对于 Web 项目,项目输出目录定义为
// %HOMEPATH%\VSWebCache\<Machine Name>\<Project Directory>\obj\<Configuration>。
意思是:SNK公司正版授权腾讯王者荣耀可以使用SNK旗下制作出的英雄人物。
王者荣耀snk正版授权的英雄有:娜可露露 不知火舞 橘右京
SNK是一家日本游戏制作开发和销售公司,早年公司名为"新日本企划",SNK缘起自日语"新日本企划"的罗马音。曾出品过《拳皇》、《侍魂》、《合金d头》等著名游戏,公司于2001年10月30日因运营不善宣布破产,并与Playmore合并为现在SNK Playmore公司。
此外,SNK还是dota中英雄"骷髅王"的简称并有程序后缀".SNK"。
1978年7月,一家以股份制形式成立的新的游戏公司在日本大阪成立了,它就是SNK公司的前身新日本企画公司。公司成立之初便开始了电子游戏的开发和制作,不久,公司的第一款游戏《大和战舰》就在日本上市。这是一款射击游戏,这是这所新公司的处女作,所以应该得到了当时电子游戏市场的强烈关注。在新开张的初期,它主要制作一些射击游戏,也有一些动作过关游戏,随着发展的迅速,在1979年只推出了2款射击游戏,1980年就已经有7款之多。直到1981年,新日本企画才慢慢地被日本玩家所注意,成为较受欢迎的几家公司之一。
创建密钥对要使用强名称为程序集签名,必须具有公钥/私钥对。这一对加密公钥和加密私钥用于在编译过程中创建强名称程序集。您可以使用强名称工具 (Sn.exe) 来创建密钥对。密钥对文件通常具有 .snk 扩展名。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)