【发布时间】:2011-02-10 19:07:57
【问题描述】:
我需要一些关于管理程序集和版本及其源代码控制的指导。
首先,关于应用程序的一些背景知识。该应用程序是一个 ERP 类型的系统,多个客户可以在其中运行各种模块;他们中有一些 标准和/或其中一些专门为客户定制。每个模块实现特定的业务功能或其变体。 理由是这些模块可以轻松互换/定制,而不会影响其他模块或需要重建。
应用程序基于应用程序外壳、应用程序核心和运行时加载的模块。所有客户都使用 应用程序外壳和核心,然后是任意数量的模块。目前我有大约 70 多个模块。
应用程序核心由 2 个程序集组成。首先是服务/业务逻辑、数据访问层、数据对象等。 二是所有基础的UI表单、对话框等。
每个模块都作为它们自己的程序集实现(作为解决方案中的 VS 项目)。这些项目中的每一个都引用了 2 个核心 组件。这些模块程序集在应用程序启动时在运行时加载。因此,要更改模块,可以简单地 更换组件。主应用程序外壳创建应用程序核心类实例。
现在的场景是这样的: - 当我更改一个模块时,它的程序集版本会发生碰撞。
当我更改核心组装方法的实现(即不更改任何类签名)时,我不需要 重建依赖模块,因此它们的版本保持不变。但是,核心程序集版本会受到影响。
当我将属性或方法添加到核心类时,我也不需要重建依赖模块以及它们的版本 保持原样。再次,核心程序集版本被颠簸。
但是,当我更改核心类的签名时,我需要重新构建所有依赖程序集。我应该撞每个模块吗 这种情况下的版本?
版本控制
看到每个模块都是一个单独的项目,它们在 VSS 树中都有不同的根元素。所以我应该标记每个模块 节点与版本?
管理版本依赖关系的最佳方法是什么? Excel?
此外,每个客户的部署现在都是一个版本(带有编号),但带有一组模块,每个模块都有各自的程序集版本。 我到底要如何跟踪这个?
我将不胜感激有关版本控制以及必须管理此模块目录的理念的任何建议/cmets
【问题讨论】:
标签: module assemblies versioning