dotnet-campus / SourceYard

Add a NuGet package only for dll reference? By using dotnetCampus.SourceYard, you can pack a NuGet package with source code. By installing the new source code package, all source codes behaviors just like it is in your project.
MIT License
50 stars 12 forks source link

希望可以修改源代码包引入的命名空间 #49

Closed walterlv closed 4 years ago

walterlv commented 5 years ago

需求:

  1. 我自己个人(@walterlv)写了一个开源组件,然后打包成源代码包;
  2. 后来,给组织(@dotnet-campus)编写的某个开源组件中,需要用到个人开源组件的一部分功能,而且,此功能可能也需要作为 API 公开;

问题:

  1. 如果不能改命名空间,那么组织公开的开源组件中就会有一部分类型是个人命名空间下的(而且这个人还属于这个组织),于是此开源组件中的 API 命名空间就不纯粹;
  2. 如果能够改命名空间,那么组织就可以统一其 API 命名空间了;

解决:

walterlv commented 5 years ago

可能造成的风险:

walterlv commented 5 years ago

对以上问题,我有三种应对办法:

  1. 此 Issue 关闭,无视此需求
  2. 给源代码包的发布者提供一个阻止修改命名空间的选项
  3. 源代码包的发布者提供授权的命名空间,仅在授权的命名空间

对于方法一,以及方法二中阻止修改的选项,以上问题依然存在,组织发布者需要接受发布带有个人开发者开发的命名空间。

对于方法二,中允许修改命名空间的情况,可能会有一些不道德的开发者也去除作者信息。

对于方法三,组织可以向作者获得授权,以便允许使用有限的几个命名空间。

lindexi commented 4 years ago

放在 https://github.com/dotnet-campus/dotnetCampus.SourceYard.Extras