我现在有一个我写的程序,它被分成3种不同的解决方案。
规定-
前端和解析器都要求全局dll在编译时存在,并在运行时使用。assembly.LoadReference.
C:\projects\myProg
C:\myProg加载解析器dll。
我的问题是,我一直在反复讨论处理项目依赖关系的问题,指向全局dll的位置。我是指向已部署的位置还是开发位置,如果是,发布还是调试?
所以我开始查找不同的解决方案类型,我想知道是否应该为我的特定情况设置一个分区解决方案,还是一个多个解决方案。
发布于 2011-12-22 17:12:59
将所有项目添加到单个解决方案中。
将项目之间的任何引用更改为“项目引用”,而不是直接引用dll文件。这将解决许多依赖问题。
如果您有不经常更改的“库”文件,则可以选择将它们移动到单独的解决方案中。它的输出应该是“预构建”发行版dll,然后您可以从主解决方案中的标准位置引用该版本(最好的方法是添加一个post构建步骤,将输出复制到您的开发“库二进制文件”文件夹中。这样,构建过程就不会改变,您只需添加一个额外的步骤来获取所需的文件,您就可以完全控制构建过程)。这很好用,但是如果您需要经常更改这些预先构建的dll,则会很痛苦,所以它最好只用于代码库中相当静态的部分。
最后,考虑将许多项目合并到单个项目/程序集中。构建时间的杀手不是代码的数量,而是程序集的数量--在我的PC上,每个项目都为构建时间增加了相当恒定的3秒,所以通过合并小项目,我节省了相当多的构建时间。
发布于 2011-12-22 17:04:58
因为这3都是同一个系统的一部分,所以在每个项目中添加一个解决方案可能会更容易一些。
注意:您不需要从它们当前的位置移动任何东西。
只需创建一个新的空解决方案并执行右键单击Add >现有项目.对于您希望包含的每个项目,它们将保持在磁盘上的位置,但将一起打开。
当前(“旧”)解决方案也将是可用的,就像它们一样。
另外,请记住,如果您同时在VS的两个实例中编辑同一个项目,则在更改和保存时,它会困扰您重新加载源代码。
最重要的是,在相同的解决方案中使用项目将允许您在它们之间添加引用,而不是DLL文件。
发布于 2011-12-22 17:01:55
为什么它们分散在单独的项目中,将分析和全局合并成一个单一的集合。使UI程序集保持独立,并尽可能简单/小。
https://stackoverflow.com/questions/8607274
复制相似问题