哪种visual studio解决方案类型适合我?

时间:2011-12-22 16:57:57

标签: c# visual-studio-2010 projects-and-solutions

我目前有一个我编写的程序,该程序分为3个独立的解决方案。

  1. 前端(所有显示相关内容)
  2. 解析器(多个(39个)项目,每个项目创建一个dll来解析特定数据)
  3. Globals(多个(5)项目,每个项目都创建一个由解析器解决方案中的项目使用的dll,以及前端)。
  4. 要求 -

    • 前端和解析器都要求全局dll在编译时存在,并在运行时使用。
    • 使用assembly.LoadReference。
    • 在运行时加载Parsers dll
    • 开发是:C:\projects\myProg
    • 部署位置为:C:\myProg

    我的问题是我一直在处理与项目依赖关系有关的问题,在哪里指向我的全局变量dll。我是否指向已部署的位置或开发位置,如果是,则发布或调试?

    所以我开始查找不同的解决方案类型,我想知道是否应该为我的特定情况设置分区解决方案或多解决方案。

4 个答案:

答案 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。