【发布时间】:2009-12-02 07:43:08
【问题描述】:
我管理一个开源项目,并希望签署项目二进制包中发布的二进制文件。我使用 Visual Studio csproj 和 sln 文件来管理和构建我的项目,并将这些文件作为项目源包的一部分分发。
如何签署生成的构建二进制文件而不必分发snk 密钥对文件?如果我使用 Visual Studio 对程序集进行签名,则每个项目文件现在都需要密钥对的副本才能构建。我不喜欢分发密钥对,即使它受密码保护。
编辑:
另一个需要注意的是,项目中的某些程序集通过InternalsVisibleToAttribute 授予好友访问权限,并通过项目引用构建这些好友。因此,此类程序集在引用已签名程序集时需要使用强名称。但是,如果密钥对未分发,那么最终用户如何构建源代码并维护项目关系?如果使用临时密钥对文件,签名程序集的公钥令牌是否会更改,从而破坏 InternalsVisibleToAttribute 引用?
【问题讨论】:
标签: c# visual-studio open-source assembly-signing strongname