Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望把nuget中sdk库加上强签名 #72

Open
adusir opened this issue Dec 2, 2021 · 5 comments
Open

希望把nuget中sdk库加上强签名 #72

adusir opened this issue Dec 2, 2021 · 5 comments

Comments

@adusir
Copy link

adusir commented Dec 2, 2021

您好,我们的很多.netframework项目都使用了强签名,在依赖你们公共的nuget库中的sdk时,发现sdk库没有强签名,导致无法引用,只能把你们的代码clone一份加上强签名重新编译。这个动作实在多余,徒增维护成本,官方能否重视处理一下这个问题。

@zqfan
Copy link
Member

zqfan commented Dec 2, 2021

好的,我去看看如何操作,如果你们有现成的方式,也可发链接或者直接留言告诉我,谢谢

@adusir
Copy link
Author

adusir commented Dec 2, 2021

@zqfan
Copy link
Member

zqfan commented Dec 2, 2021

从这篇官方文章 https://github.com/dotnet/runtime/blob/main/docs/project/strong-name-signing.md 来看,似乎并不是必选项,我也并不确定开启后对其他不使用强名称签名的用户影响。
或者仅仅签名就可以了?https://docs.microsoft.com/zh-cn/nuget/create-packages/sign-a-package

@adusir
Copy link
Author

adusir commented Dec 2, 2021

对.net core 不强制要求,因为他的机制弱化了强签名(即使这样,.Net Core官方库或大多数三方库还是会做强签名);但是对外提供.net framework的api库,都会约定俗成的做成强名称,可以看看其他技术型厂商或者有讲究的开源库发布者都会这么做,其中一个原因考虑了用强签名dll在对某个特定的程序集internal可见时,第三方程序集不至于被轻易替换。

另外,.netframework库从非强名称升级为强名称,并不会对现有的用户有啥影响,不仅仅是编译没有问题,运行也不会有问题(这个很好理解,你本来对另一半的要求是个女的就行,这个时候来了个身高1米7,体重55kg,还特别漂亮的女人要和你相处,按照你最初的要求,你说他符合不?)。

@adusir
Copy link
Author

adusir commented Dec 2, 2021

另外程序集的强名称和程序集编译完了后再做数字签名不是一回事;你们的sdk是最上游的库,如果你们不使用强名称,别人使用你们的库都没法使用强名称。不知道你们在对外提供sdk库时,有没有经过类似技术委员会的评审,如果有去讨论的话,应该不会有这样的问题,这是一个很基础的知识。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants