【问题标题】:Sharing .net assemblies between mutliple development teams在多个开发团队之间共享 .net 程序集
【发布时间】:2012-11-24 02:15:28
【问题描述】:

我正在寻找在多个开发团队(不在同一个办公室/存储库中)之间共享 .net 程序集(都处于持续开发阶段)的最合适的解决方案。

第一个团队在一个名为core.dll 的程序集中开发并打包了许多有用的通用功能,他们在许多应用程序和库中引用(作为一个 VS 项目)。该程序集又引用了非常标准的程序集,例如(system.dll 等...)加上log4net.dll(作为其存储库中的第三方):

  • Core.dll
    • System.dll
    • ...
    • Lo​​g4Net.dll

在我这边,我开发了一个更高级别的程序集 Library.dll,我真的很想将 Core.dll 中开发的东西合并到其中,而不是维护重复的代码:

  • 库.dll
    • System.dll
    • ...
    • Lo​​g4Net.dll
    • Core.dll

最后,第一个团队反过来又对我的代码感兴趣来开发他们自己的应用程序:

  • 应用程序.exe
    • System.dll
    • ...
    • Lo​​g4Net.dll
    • Core.dll
    • Library.dll

这看起来像是在两个开发团队之间保持松散耦合:

    1234563党很稳定) 1234563

目前我想保持我们团队之间的松散耦合是让他们为我提供隐藏的“log4net”引用,如下所示:

// Create a single assembly hiding for Log4Net
ILMerge /out:DCore.dll Core.dll Log4Net.dll /internalize

我也这样做:

// Create a single assembly hiding for Log4Net and Core
ILMerge /out:DLibrary.dll Library.dll DCore.dll Log4Net.dll /internalize

我不知道这个解决方案是否合适,我们热烈欢迎任何其他保留我们两个团队相互联系的解决方案。

NB1:我不认为将库部署到 GAC 是一个好的解决方案,因为 Core.dllLibrary.dll 仍处于持续开发阶段,缓存会随着太多无用的并行版本而增长。

NB2:我已经阅读了这个thread,但我对 NuGet 不太了解,也不知道这里是否合适。

【问题讨论】:

    标签: .net


    【解决方案1】:

    我个人认为 NuGet 将在管理包、它的依赖项和版本控制方面为您提供很多帮助。 NuGet 与所有主要 CI 服务器和 Visual Studio 完美集成。更多信息可以在 NuGet 文档中找到:

    http://docs.nuget.org/docs/Creating-Packages/Hosting-Your-Own-NuGet-Feeds

    您可以在以下博客文章中阅读有关 NuGet 如何处理程序集版本控制的更多信息: http://blog.davidebbo.com/2011/01/nuget-versioning-part-1-taking-on-dll.html

    【讨论】:

    • 谢谢。我会试试 NuGet。
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    相关资源
    最近更新 更多