我管理一个开源项目,并希望签署项目二进制包中发布的二进制文件。我使用 Visual Studiocsproj
和sln
文件来管理和构建我的项目,并将这些文件作为项目源包的一部分进行分发。
如何签署我的构建生成的二进制文件而不必分发snk
密钥对文件?如果我使用 Visual Studio 对程序集进行签名,则每个项目文件现在都需要密钥对的副本才能构建。我对分发密钥对感到不舒服,即使它受密码保护。
编辑:
另一个需要注意的是,项目中的某些程序集通过 授予朋友访问权限InternalsVisibleToAttribute
,并通过项目引用构建这些朋友。因此,此类程序集在引用已签名程序集时需要使用强名称。但是,如果密钥对未分发,那么最终用户如何构建源代码并维护项目关系?如果使用临时密钥对文件,签名程序集的公钥令牌不会更改,从而破坏InternalsVisibleToAttribute
引用吗?