我的产品有大约10个以上的组件。我们曾经在没有强烈命名组件的情况下发货。但在阅读了强有力的命名之后,我认为强名称组合是一个明智的想法。只是想知道一个最佳实践来强名称程序使用的所有程序集?
有什么想法吗?
答案 0 :(得分:9)
是的,这是一种最佳做法,您确实应该这样做,特别是考虑到您将此代码发送给客户这一事实(我认为强命名在内部或基于Web的应用程序中不那么重要)。< / p>
有关此理由的说明,请参阅Strong-Named Assemblies:
强名称由 程序集的标识 - 简单的文本 名称,版本号和文化 信息(如果提供)-plus a 公钥和数字签名。它 从程序集文件生成 (包含程序集的文件 清单,反过来包含 所有文件的名称和哈希值 弥补组装,使用 相应的私钥。微软 VisualStudio®.NET和其他 提供的开发工具 Windows软件开发工具包(SDK) 可以为。分配强名称 部件。具有相同的装配 预计会有强名 相同。
您可以确保名称是全局的 通过签署一个程序集来唯一 强大的名字。特别强大 名称满足以下要求 要求:
强名称保证名称唯一性 依靠独特的密钥对。没有人 可以生成相同的程序集名称 你可以,因为一个集会 用一个私钥生成一个 与装配不同的名称 使用另一个私钥生成。
强名称可以保护版本 大会的血统。一个强大的名字 可以确保没有人能生产出来 随后的程序集版本。 用户可以肯定是一个版本的 他们装的组件来了 来自创建的同一发布者 应用程序的版本 用。
强大的名字提供了强大的力量 诚信检查。传递.NET 框架安全检查保证 程序集的内容有 自建成以来没有改变过。 但请注意,强名称 而且他们自己并不意味着一个层次 如此信任,为...提供 例如,通过数字签名和 支持证书。
当你引用强名字时 汇编,你希望得到肯定 版本和版本等的好处 命名保护。如果强名 然后程序集引用程序集 用一个简单的名字,但没有 有这些好处,你输了 你可以从使用a中获得的好处 强烈命名的集会并恢复 DLL冲突。因此,名气很大 程序集只能引用其他程序 强烈命名的集会。