c# - 组织大型 C# 解决方案

标签 c# .net

我有一个每天在 TFS 中构建的大型解决方案。该解决方案涵盖多个逻辑子解决方案 - 例如 ApplicationA 由项目 A、B、C、D 组成; ApplicationB由项目A、B、E、F组成,ApplicationC由项目A、C、G、H组成。

目前我们在本地制作构建解决方案文件的副本并卸载我们不需要构建的项目来处理项目 - 因此对于 ApplicationA 我们将卸载除 A、B、C、D 之外的所有内容。

另一种方法是创建多个解决方案配置,这些配置只会为 ApplicationA 构建项目 A、B、C、D - 但我担心这会很麻烦,而且 .sln 文件最终会变得很大。

问题是许多项目被合并到一个 wix 包中并一起安装 - 所以主要的 .sln 文件是有意义的,特别是从构建和调试的角度来看。

维护多个解决方案文件似乎不合适,因为添加新项目时我们需要将它们添加到多个解决方案中。所以也许配置方法是要走的路,但感觉也不对。

有没有人遇到过类似情况,您是如何解决的?

最佳答案

听起来有五个解决方案文件是有意义的:

  • Master.sln,包含所有项目
  • ApplicationA.sln,包含项目A、B、C、D
  • ApplicationB.sln,包含项目A、B、E、F
  • ApplicaitonC.sln,包含项目 A、C、G、H

将所有这些解决方案文件放在同一个顶级目录中很好。

But maintaining multiple solution files isn't feasible as when new projects are added we'd need to add them to multiple solutions.

为什么这是个问题?无论如何,您需要确定项目需要哪些应用程序...在主解决方案中创建项目(肯定需要它),然后对需要它的解决方案使用“添加现有项目”。这真的并没有那么多工作——而且我不希望经常添加新项目。 (如果是,则表明存在更大的问题。)

关于c# - 组织大型 C# 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260872/

相关文章:

c# - Visual Studio Tools for Office (VSTO) 版本混淆

.net - 如何在所选文件夹中打开 FolderBrowserDialog?

c# - 将文本框绑定(bind)到 View 模型中的对象

c# - 错误查询 Sql Server 插入,不正确的值格式 C#

c# - 防止在 MySQL 数据库中插入相同的值

c# - 我想获取 C# 中对象/变量的创建者线程 ID

.net - 无法加载 Entity Framework 提供程序类型 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'

.net - 程序如何知道它是否是 ClickOnce?

C# 和 WinForms : 'Integrity' of Form. Show() 调用

c# - XElement Nodes() 与 Elements() 有什么区别?