这里有一些争论,哪个更适合从其他项目引用我们的公共代码库:通过项目或汇编。我赞成引用该项目,特别是因为我们有自动化的单元测试,证明公共代码能够满足它的需要。
另一个阵营的想法是锁定那些项目,并且每月只发布一次或类似的东西。然后强制所有项目引用程序集。他们认为这将保护他们免于部署未经测试的代码。他们“忙于”编写自动化单元测试并配置他们的项目以进行持续集成,我对此没有影响,所以请不要关注这方面。
这就是我能想到为什么项目参考是更好的解决方案的原因。我也在寻找其他意见。
优点:
CONS:
答案 0 :(得分:5)
以下是你错过的几个职业选手
回应你的缺点
答案 1 :(得分:2)
好吧,如果你使用任何类型的源代码控制,你可以满足两个阵营。使用分支或标签(取决于您的源代码管理)。
基本上,如果您有一个控制公共代码的团队,他们可以分支/标记稳定版本。然后你的项目将使用稳定版本。这可以保护您免于为其他项目部署不稳定的代码,同时使您能够测试,调试和查看所有源代码。
每当您的公共控件团队创建新的稳定版本时,您都可以更新源引用以从新分支中获取。
这种情况的另一个好处是你可以在公共代码上有一个补丁,以免混淆当前正在进行的开发工作。当然,这确实增加了在必要时在多个地方更新公共代码的额外管理负担。
答案 2 :(得分:1)
参考策略将一直是常见问题
我知道这是一个非常古老的问题,但它始终是一个相关答案的相关问题,我记得几年前有同样的问题和两个选择的影响(项目与汇编
项目参考对于可视化工作室来说是理想的
项目引用是理想的,因为您可以让IDE更深入地了解代码的详细信息,因为您明确告诉Visual Studio引用项目及其所有代码的位置。如果您正在使用少于200个项目模块的系统并且只能提供少量解决方案(项目分组),那么请选择项目参考,因为Visual Studio可以在设计时为您提供更多信息,例如向您展示代码而不是反映引用的程序集。
组装参考可以更好地扩展
如果您的系统比200个项目大得多,那么您的构建可能会变得非常慢。我已经看到每个版本20分钟,这真的很糟糕。因此,如果你可以引用一个不会改变的DLL,你就会告诉Visual Studio" NOT"构建它,这显然会对构建时间产生一些影响。
组装参考创建一个错误的解耦系统
项目引用为您提供了一个更智能的IDE,它始终知道使用类型的位置和位置,可以找到代码的位置,以及一些其他有用的统计信息,因为所有项目都是直接引用的。当您无意中尝试创建循环引用时,它也会发出警告。
汇编参考文件的PROS:
汇编参考的缺点:
循环引用成为可能,您经验不足的开发人员最初不会注意到这些引用。
您可以通过将其中一个程序集视为已签入的第三方程序集,将其转移到下一个版本并最后构建它来解决循环引用的这一挑战。当构建在使用此排除程序集的项目上失败时,您可以决定重建该指定项目,并经常按摩循环依赖项。 (不推荐,但有可能)
新项目默认使用最新版本的.net框架而不考虑当前解决方案中的所有项目仍然是.net的早期版本,因此当您使用程序集引用添加对该项目的引用时,你经常会遇到一个不容易弄清楚的奇怪错误。
你点击"添加引用",进入几个目录,向下几个目录,选择dll并单击add而不会意识到dll实际上太远了上下你进入另一个分支你也正在努力。只有在构建服务器尝试解析该程序集并失败时,此问题才会显现。错误"未知命名空间,您是否缺少程序集引用?"不会浪费你整个团队的时间来帮助你。