背景:我的团队由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),并添加了对项目的引用。
重要的结果是:
当一个项目的解决方案生成时,它的所有依赖项都是用它生成的,因此在部署时,您知道所有生成产品都是自动生成的最新版本。
最佳答案
我将创建一个新的解决方案,并将所有相互关联的项目添加到其中。可以将每个原始解决方案中的项目分组,方法是将它们放在新解决方案中的不同解决方案文件夹中。这样,当您构建一个项目时,它所依赖的所有项目也将被构建。这也意味着所有项目都将使用相同的配置(即发布或调试)构建。这意味着您的所有项目都可以在debug中构建,而不仅仅是依赖树中的顶部项目,而下面的所有项目都是一个发布程序集。使调试更容易。
关于c# - 在Visual C#Express中使用多个解决方案的良好实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14606770/