gpt4 book ai didi

c# - 为开源项目管理强名称 key 对的推荐方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 20:09:00 24 4
gpt4 key购买 nike

我管理着一个开源项目,我想签署项目二进制包中发布的二进制文件。我使用 Visual Studio csprojsln 文件来管理和构建我的项目,并将这些文件作为项目源包的一部分进行分发。

我如何才能签署生成的二进制文件,而不必分发 snk key 对文件?如果我使用 Visual Studio 对程序集进行签名,每个项目文件现在都需要 key 对的副本才能构建。我不喜欢分发 key 对,即使它受密码保护。

编辑:

另一个需要注意的是,项目中的某些程序集通过 InternalsVisibleToAttribute 授予好友访问权限,并通过项目引用构建这些好友。因此,此类程序集在引用已签名程序集时需要使用强名称。但是,如果 key 对未分发,那么最终用户如何构建源代码并维护项目关系?如果使用临时 key 对文件,签名程序集的公钥 token 是否会更改,从而破坏 InternalsVisibleToAttribute 引用?

最佳答案

您不应分发 key 对。 strongname 用于验证新版本的程序集是否来自同一发布者。

如果另一个开发人员想要对您的项目进行分支,他们将生成自己的 key 对,这将有效地表明他们的版本不是您提供的,因此除非重新编译,否则依赖于您的其他程序集将不会再加载。这并不总是很方便,但它可以保护您免受发布恶意版本程序集并悄悄分发它的人的侵害。

关于c# - 为开源项目管理强名称 key 对的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1831248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com