使用强名称签署DLL的好处

时间:2011-12-05 21:21:27

标签: c# assemblies .net-assembly strongname assembly-signing

我有一个包含多个c#类库的c#解决方案。我最近正在做一些研究,建议我的库中输出的程序集应该签名,并使用强名称签名。首先,我想知道我是否最好进步?从这些类库输出的库用于多个其他项目。

如果从我之前的问题中得知是的,我应该签署我的dll,我使用的.snk,这可以用于解决方案中的每个类库吗?或者每个类库必须是一个键吗?

3 个答案:

答案 0 :(得分:3)

有时签署程序集是必需的。如果您希望GAC您的程序集,或者签名程序集想要引用另一个程序集,则情况属实。

您可以重复使用相同的.snk文件,这样做会为所有程序集生成相同的公钥标记。

答案 1 :(得分:1)

如果您打算将程序集放在GAC中以供大量程序集使用,那么这一点非常重要。

如果你打算让用户使用而不是安装自己,这是有利的,因为它提供了一定程度的保证,它确实是你说的给你的文件,而不是一个被篡改。< / p>

每个实体(个人,集体,开源组或公司)使用少量(可能只有一个)SNK文件是好的,因为如果有人信任你(无论“你”是指个人,公司等)还是他们因此,相信他们确定是你的公钥,然后他们也会相信它。你不想每次用不同的手写签名签署支票,不是吗?

答案 2 :(得分:0)

签署dll是在GAC中发布dll的要求。 dll签名的真正好处如下。

<强> 1。版本

<强> 2。认证

一个。版本控制表示dll构建的版本,并且在将它们推入GAC时,两个具有相同名称的dll可以存在但版本不同

湾身份验证表示 dll是否未被篡改,并且在创建时确实存在相同的内容。

dll签名详细博客可用here