NuGet来管理内部程序集的版本控制 - DLL Hell

时间:2013-08-28 15:21:45

标签: c# dll shared-libraries assemblies nuget

背景资料 我已经拥有3个共享许多内部程序集的网站,它们每个都连接到IIS中托管的WCF服务,用于基本的CRUD类型操作。

几个不同的开发人员可以同时在每个网站上工作,对共享程序集中使用的代码进行更改/添加。

问题 然后,每个开发人员构建他们的代码并确保他们的网站正常工作。但是,他们并不知道在更改共享代码时,他们可能会影响其他网站的功能。

要解决此问题,我可以单独构建每个共享程序集,将dll复制到特定于每个网站的目录,并从那里添加引用。

然而,这标志着几个问题:

  1. 这意味着不断构建共享程序集并手动将dll复制到所需的目录中。

  2. 当开发人员获取共享程序集的最新源代码时,他们会以任何方式获得更改。

  3. 我考虑过使用nuget软件包管理这个问题,但这只能解决问题#1,使管理特定版本变得更容易。

    我希望这是有道理的......

    是否有其他人有任何建议/提示?

1 个答案:

答案 0 :(得分:1)

这个没有真正的灵丹妙药。

开发人员必须承担一些责任,确保对共享程序集的更改不会影响引用这些程序集的其他代码,您实际上不应该跨项目共享它们。如果他们在这些共享程序集中发生变化的事情经常发生,您可以考虑将这些部分或他们正在更改的方法迁移到每个单独的项目中。像这样的共享程序集应该只对绝对核心函数进行,这些函数应该非常非常频繁地改变。