背景:我的团队由 3 名相当缺乏经验的开发人员组成。我们正在为公司开发内部软件。目前,我们有许多较小且独立的解决方案。其中许多是相互依存的。目前,这些依赖是通过引用相应发布文件夹中的输出 dll 来实现的。通过手动重建相关解决方案来推送更新。
示例: 解决方案 A 使用解决方案 B 的功能。建立连接时解决方案 A 引用 ...\Release\B.dll 。对 B 的更改通过构建解决方案 B、然后构建解决方案 A 等来传播。
这之前工作得很好,但现在我们正在从手动(头脑麻木)“版本控制系统”(folder1,folder2,folder2New ...)转移到使用正确的(git)。
似乎不建议对 .dll 进行版本控制。这意味着每次有人想要构建新版本的 A 时,他还需要构建 B(可能还有 5 个其他解决方案)才能拥有最新版本的 B。
我认为必须有更好的方法来做到这一点。我一直在考虑将相关解决方案组合成一个主解决方案,但我不知道如何在 Visual C# Express(我们正在使用)中做到这一点。
所以最后的问题是:
是否有一个可以构建一切的主解决方案?- 从 MSDN 看来是这样,但我不知道如何在 Visual C# Express 2008 中执行此操作,这让我
这在 Visual C# Express 中是否可行?如果没有,有什么好的方法可以解决这个问题?
编辑感谢大家在下面的好建议。这是我最终做的总结。
简而言之,问题的答案是:“是”和“有点,但大多是”。我实现如下:为了了解依赖关系,我按照下面的建议进行操作,并绘制了二进制产品的映射,箭头从 dll 或 exe 的名称指向其所有依赖项。
对于每个项目,我打开了其对应的解决方案(因为一开始有一个解决方案 pr 项目)。然后,我在图中显示的树结构中添加了每个依赖项的项目文件(通过右键单击解决方案资源管理器中的解决方案),因此还包括依赖项的依赖项等。然后我删除了旧的引用(直接指向 .dll)并添加了对项目的引用。
重要的结果是:
- 当一个项目的解决方案被构建时,它的所有依赖项都是用它构建的,所以在部署时,你知道所有的构建产品都是自动的最新版本。