.net 公共开源项目使用什么样的签名方法?

.net 公共开源项目使用什么样的签名方法?,.net,open-source,dll,signing,.net,Open Source,Dll,Signing,我正在CodePlex上发布一个开源库,希望dll文件具有强名称,以便可以添加到GAC 签约的最佳选择是什么 我应该使用SNK吗?如果是这样,每个人都可以访问该密钥。我对每个人都有访问权限没有问题,但这是一个好方法吗 我应该使用PFX吗?如果是,是否意味着其他下载源代码的人无法构建解决方案 我喜欢做的是,我是唯一一个可以访问密钥的人,这样签名的程序集也具有一定的真实性,但同时不会阻止其他开发人员下载、构建或更改自己的源代码,并能够发布主项目的更改。我们已经讨论了很多年了。我相信大家的共识是,当我

我正在CodePlex上发布一个开源库,希望dll文件具有强名称,以便可以添加到GAC

签约的最佳选择是什么

我应该使用SNK吗?如果是这样,每个人都可以访问该密钥。我对每个人都有访问权限没有问题,但这是一个好方法吗

我应该使用PFX吗?如果是,是否意味着其他下载源代码的人无法构建解决方案

我喜欢做的是,我是唯一一个可以访问密钥的人,这样签名的程序集也具有一定的真实性,但同时不会阻止其他开发人员下载、构建或更改自己的源代码,并能够发布主项目的更改。

我们已经讨论了很多年了。我相信大家的共识是,当我们开始使用强命名时,我们会有一个只有少数核心开发人员可以访问的密钥,并将其用于发布版本,但还有一个密钥是公开的。因此,任何想要确保只针对他们知道已获得项目成员批准的构建运行的人都可以使用私有密钥的公钥令牌进行构建,但任何人都可以下载并构建非可信版本


使用公开密钥的另一种选择是只使大多数构建配置不具有强名称,但我更喜欢每个构建都具有强名称的版本,正因为如此,它与完整版本之间的差异最小。

我在CodePlex上的项目是发布使用SNK强烈签名的版本。但是,此SNK不在源代码管理中,也不公开。因此,我是唯一一个可以使用此密钥对程序集进行强签名的人。我解释过了。

Duplicate:所以,你建议我的项目中有两个键。一个SNK,这是默认密钥,每个人都可以用它签名。另一个PFX密钥,有密码,我是唯一知道密码的人。当我想要发布时,我会更改密钥首选项,构建DLL并发布它?发布PFX是否意味着任何知道密码的人都可以使用它?因为我更希望一切都在项目的源代码管理上。@Irchi:不,我根本不建议使用PFX键。我建议你有自己的SNK,你要保密。我对PFX一无所知。希望所有内容都在项目的源代码管理上与我喜欢做的基本上是不兼容的,因为我是唯一一个可以访问密钥的人,除非您可以在源代码管理中指定对某些文件不具有读取权限。@Steven:我不希望这样,不。正如我在回答中提到的,我认为可下载的版本有一个公共SNK是很好的——这样,当你从开发版本移动到发布版本时,环境不会有太大的变化——在构建是否签名等方面没有差异。只是MHO而已。