我尝试在我当前的项目中使用ServiceStack,但发现发布的二进制文件名称不强,所以我无法使用它开箱即用。当询问GitHub“为什么”时,我得到了以下答案:
it's virally toxic and hinders binding, upgrading, development, deployment, etc.
mythz非常简洁,所以我不想再打扰他,并在这里问。我使用了许多开源.NET项目,如AutoMapper,NUnit,Moq,log4net,Ninject等,他们的版本都是强大的命名。在这里找到了similar question,但它对我没有帮助。这是OSS的正常做法吗?为什么不发布签名和未签名的二进制文件?
答案 0 :(得分:6)
以下是关于强命名对于开源项目不好的原因的现有讨论:
https://groups.google.com/forum/?fromgroups#!topic/getglimpse-dev/pXXazMOOdjE
这是一个使用它的噩梦故事:
http://haacked.com/archive/2012/02/16/changing-a-strong-name-is-a-major-breaking-change.aspx
我亲自参加过2代Log4Net的团队,他们试图在同一个项目中使用引用2个不同强名称Log4Net的程序集 - 浪费了大量的时间和精力来完成这项工作不是很有趣,也不是我们计划对自己或我们所有用户进行授权的事情。
想要一个强名称版本的用户可以自由签署他们自己的public ServiceStack repos克隆/分支。
如果有需求,我们会考虑维护我们自己的“官方记录”商业版本的图书馆。
答案 1 :(得分:5)
我认为这取决于开发人员。优点很明显 - 任何人都可以使用强名称组装并在任何环境中使用它。在这种特殊情况下,我的意思是签名或未签名的程序集。缺点 - ?
我认为签署二进制文件应该是一种绅士规则。
Jon Skeet回答了类似的question,他的观点非常不合理。