有很多关于如何设置 dotnet 项目的示例,但似乎没有一个适合我们的情况。
我们有一个具有多个应用程序、多个依赖项的解决方案。我们目前在 SourceSafe 上,并计划转向颠覆,但发现很难以正确的方式组织我们的源。
示例解决方案
- 应用程序1
- 应用程序2
- 商务对象
- 数据访问
- 自定义控件
依赖项
- BizObjects->数据访问
- App1->自定义控件
- App1->BizObjects
- App1->数据访问
- App2->自定义控件
- App2->BizObjects
我们还有一个配置管理系统,它根据操作员的工作负载进行部署(通过数据库中的副本)。我们用一个版本标记一个应用程序“发布”,并为该发布添加多个文件依赖项。请记住,我们现在采用的解决方案是尝试将旧的(Windows 3.1 开发的)解决方案与 .NET 文件/依赖结构一起使用。
对于 App1,我们有 App1.exe、BizObjects.dll、DataAccess.dll 和 CustomControls.dll。由于 BizObjects 引用 DataAccess,我们对 App2 具有相同的依赖项集——但这是手动定义的。我们没有一个系统来识别依赖树。
“发布”的每个依赖项都是一个文件和版本 ID。对于不同的工作负载,同一个应用程序可能包含每个文件的不同版本。
- 我们到底哪里错了?我们做错了吗?
- 我们如何构建一个 svn 源代码树来适应部署需求?
- 或者
- 我们如何重构代码以更好地支持对我们的设置有意义的部署策略?
对于(看起来)一个相对简单的问题,我们有一个旧的和过度设计的解决方案。谁能引导我/我们朝着正确的方向前进?
编辑:我读了这个问题并记得我们也有相同的开发/测试/产品区域,代码必须通过这些区域。