【问题标题】:Should i StrongName / Strong-Sign an OSS dll?我应该 StrongName / Strong-Sign 一个 OSS dll 吗?
【发布时间】:2013-10-06 23:33:09
【问题描述】:
我有许多开源项目也有可用的 Nuget 包。
最近,我被要求对这些 OSS NuGet 包之一进行强签名(嗯,包中的 DLL,更简洁)。
所以 - 问题:
- 如果我对其进行强签名,其他非强签名的 dll 是否可以使用它?
- 我是否应该/应该将我的
.snk 文件提交到公共存储库中?如果是,那岂不是违背了“秘密”签署的目的吗?
干杯!
【问题讨论】:
标签:
c#
.net
dll
open-source
strongname
【解决方案1】:
这是一组有趣的问题。
如果我对其进行强签名,其他非强签名的 dll 是否可以使用它?
我相信答案是肯定的。强签名是创建“信任链”的一种手段。您可以使用强签名的 dll,而无需对正在使用的 dll 进行强签名。
我应该/我应该将我的.snk 文件提交到公共存储库吗?如果是,那岂不是违背了“秘密”签署的目的吗?
是的。如果您发布 .snk 文件,您就违背了强签名的目的(在大多数情况下),因为任何人都可以签署您的 dll。想要使用公开可用的源项目的人应该为自己的使用负责。如果您有客户想要它或仅以二进制形式分发项目,那么您可以对其进行签名,但将您的私钥 (snk) 保密。