将我拥有源代码的所有项目添加到解决方案中,还是只添加dll引用更好?

3
我需要证据和资源,请帮我翻译一下。我有很多相关的项目,并且可以获得它们的代码,但我只在处理其中的一小部分。同时,我也拥有其他项目的最新二进制文件。在这种情况下,是只添加我所使用的项目并将其作为dll引用,还是即使我不需要改变或查看它们,也要添加其他项目呢?对此是否存在个人偏好?最佳实践是什么?
注意:项目数量正在增加,现在已经达到了25个!
请提供参考文献和链接,而不是一般性的答案。
注意:所有项目都是由我们团队开发,而不是外部开源项目。

听起来你想让我们为你做研究。 - JeremyWeir
不,我已经搜索过了,没有找到任何明确的答案,甚至是一个答案。 - Saw
所以,如果你已经浏览了整个互联网,那么基本上只剩下意见了。 - JeremyWeir
1
您可能需要尝试重新措辞您的问题,因为目前的形式有点太泛泛了。答案应该有一个正确的答案。例如,微软发布了许多主题的建议,因此询问他们的建议将为回答提供更具体的基础。这是一个类似的问题 - Guvante
1
你是对的@Guvante,但StenPetrov的回答是我问题的一个好的通用答案,我认为它对其他人也会有用。 - Saw
2个回答

6

这不是个人偏好。

尽可能地,你应该引用项目本身而不是它们生成的DLL。原因如下:

  • 构建Debug和Release将产生一致的输出
  • 不会有陈旧的引用
  • 当你有链接引用A->B->C时,如果使用DLL,改变A的dll不会导致重新构建C,VS知道在发生更改时要构建什么,这点尤其重要

唯一可能需要关注的问题是你使用了多少项目。如果太多,那么将解决方案分成部分,每个部分都是一致的并引用所有涉及的项目,因此SolutionA有Project1、Project2、Project3,SolutionB有Project3、Project4和Project5,但是构建任何一个仍将产生一致的构建。对于发布版本,仍然保留包含所有项目的解决方案。

25个项目仍然可管理。你也可以有一个解决方案,将项目分组到不同的解决方案文件夹下,这样在VS的解决方案资源管理器中就不是一个由25个项目组成的大列表,但它们仍然同时构建。


只是提供一个不同的角度:我们在所有产品中有超过250个单独的程序集。显然这是一个不同的规模,我们必须有一个不同的解决方案。我们使用MSBuild来管理我们的构建,并且我们有自定义工具来确定项目依赖关系并为MSBuild生成构建文件。但是如果您只有几个项目,像Sten所说的那样,您最好只使用一个解决方案。 - Matthew Watson
@MatthewWatson 在250个项目中,你肯定需要多种解决方案和可能的定制构建,但我会尽量避免这种情况,因为它会带来自己的麻烦。 - Sten Petrov

1
你解决方案中的每个项目都作为一个DLL引用。因此,这是相同的。唯一的区别是,如果您不经常更改25个项目中的任何代码,那么每次重建都会非常糟糕。
问题如下:当您构建解决方案时,如果引用的项目没有更改,则不会进行构建。这与未在解决方案中拥有所有项目相同。
但是,如果您执行清除并重新构建,则解决方案中所有项目的DLL将被删除,并且将重新构建所有项目。这将需要更长时间。
这是我目前能想到的唯一两件事。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接