我管理一个开源项目,并想签署项目二进制包中发布的二进制文件。我使用Visual Studio csproj
和sln
文件来管理和构建我的项目,并将这些文件作为项目源代码包的一部分进行分发。管理开源项目的强名密钥对的建议方式是什么?
我该如何签署生成的二进制文件,而不必分发snk
密钥对文件?如果我使用Visual Studio签署程序集,则每个项目文件现在都需要密钥对的副本才能构建。即使密码保护,我也不习惯分发密钥对。
编辑:
另一个需要注意的是,有些组件在通过InternalsVisibleToAttribute
项目补助朋友访问,并通过项目建设参考那些朋友。因此,在引用签名程序集时,此类程序集需要使用强名称。但是,如果密钥对未分配,那么最终用户如何构建资源并维护项目关系?如果使用临时密钥对文件,那么签名程序集的公钥令牌是否会发生更改,从而破坏了引用?
因为我需要分配项目和解决方案文件,并且由于解决方案需要使用密钥对(启用签名时),我还应该分发一个“虚拟”密钥对,以便最终用户可以构建而不必操作项目文件?签入禁用签名的项目文件似乎很麻烦,但每次发布时都必须切换此设置。 – 2009-12-02 15:04:04
您可以执行以下操作:添加构建步骤,检查.snk文件是否已经存在,并在需要时运行sn.exe生成新文件。然后它将直接从其他用户的存储库中构建。 – sharptooth 2009-12-03 06:16:20