我目前有一个我编写的程序,该程序分为3个独立的解决方案。
要求 -
C:\projects\myProg
C:\myProg
我的问题是我一直在处理与项目依赖关系有关的问题,在哪里指向我的全局变量dll。我是否指向已部署的位置或开发位置,如果是,则发布或调试?
所以我开始查找不同的解决方案类型,我想知道是否应该为我的特定情况设置分区解决方案或多解决方案。
答案 0 :(得分:3)
将所有项目添加到单个解决方案中。
将项目之间的任何引用更改为“项目引用”,而不是直接引用dll文件。这将解决许多依赖性问题。
如果您有任何不经常更改的“库”文件,则可以选择将它们移动到单独的解决方案中。这个输出应该是“预构建”的发布dll,然后你可以从主解决方案中的标准位置引用(最好的方法是添加一个post build步骤,将输出复制到你的开发“library binaries”文件夹这样,构建过程不会改变,你只需添加一个额外的步骤来获取所需的文件,然后你就可以完全控制构建过程了。这很好用,但是如果你需要经常更改这些预构建的dll,那就太麻烦了,所以它最好只用于代码库中相当静态的部分。
最后,考虑将您的许多项目合并到一个项目/程序集中。构建时间的杀手不是代码的数量,而是代码的数量 - 在我的PC上,每个项目在构建时间上增加了相当恒定的3秒,因此通过合并小项目,我节省了相当多的构建时间。
答案 1 :(得分:2)
由于这3个都是同一系统的一部分,因此添加每个项目的单个解决方案可能会更容易。
注意:您无需从当前位置移动任何内容。
只需创建一个新的空解决方案,然后右键单击添加>现有项目...对于您想要包含的每个项目,它们将保留在磁盘上的位置,但将一起打开。
当前(“旧”)解决方案也将可用,就像它们一样。
另请注意,如果您同时在VS的两个实例中编辑同一个项目,那么在进行更改并保存时,它会让您重新加载源代码。
最重要的是,让项目位于同一解决方案中将允许您在它们之间添加引用,而不是DLL文件。
答案 2 :(得分:0)
为什么它们分散在单独的项目中,将Parses和globals组合成一个程序集。保持UI组件分离,尽可能简单/小。
答案 3 :(得分:0)
假设你有充足的理由拥有这么多项目(例如:不同数量的解析器可用于产品的不同许可证。)
轻松管理visual studio中的依赖关系:
右键单击解决方案节点
选择“项目构建顺序...”
确保每个项目在该对话框中不需要项目下方的项目。
关于“在哪里部署”:visual studio默认情况下做得很好。如果您正在进行调试,它将输出到您的解决方案的调试文件夹,同样适用于发布。
HTH。