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

C# 将我拥有的所有项目的代码添加到解决方案中是否更好?还是只添加dll引用?,c#,.net,visual-studio-2010,visual-studio,projects-and-solutions,C#,.net,Visual Studio 2010,Visual Studio,Projects And Solutions,我需要证据和资源请,我有很多项目,相互关联,我需要获取它们的代码,我只处理它们的一小部分,我有其他项目的所有二进制文件的最新版本,是否只添加我处理的项目并添加引用作为dll引用更好,或者添加其他项目,即使我不需要更改或查看它们 这是个人喜好吗?为什么?最佳做法是什么 注意:项目数量正在增加,现在是:25个项目,正在增加 请提供参考和链接,而不是一般的答案 注意:所有项目都是由我们的团队开发的,而不是外部开源项目解决方案中的每个项目都被引用为DLL。所以这是一样的。 唯一的区别是,如果您不必在25

我需要证据和资源请,我有很多项目,相互关联,我需要获取它们的代码,我只处理它们的一小部分,我有其他项目的所有二进制文件的最新版本,是否只添加我处理的项目并添加引用作为dll引用更好,或者添加其他项目,即使我不需要更改或查看它们

这是个人喜好吗?为什么?最佳做法是什么

注意:项目数量正在增加,现在是:25个项目,正在增加

请提供参考和链接,而不是一般的答案


注意:所有项目都是由我们的团队开发的,而不是外部开源项目

解决方案中的每个项目都被引用为DLL。所以这是一样的。 唯一的区别是,如果您不必在25个项目中的任何一个项目中经常更改某些代码,那么每次重建都会非常糟糕

问题如下:当您构建解决方案时,如果引用的项目没有更改,那么它将不会被构建。这与解决方案中没有所有项目是一样的

但是,如果您执行清理并生成,则解决方案中的所有项目DLL都将被删除,并且所有项目都将重新生成。这将需要更长的时间


这是我目前唯一能想到的两件事。

这不是我个人的偏好

只要有可能,您应该引用项目本身,而不是它们生成的DLL。原因如下:

  • 构建调试和发布将产生一致的输出
  • 不会有过时的引用
  • VS知道当某些内容发生更改时要构建什么,尤其是当您链接了引用A->B->C时,如果使用dll,更改A的dll不会导致重建C
唯一可能关心的是你正在使用多少个项目。如果太多,则将解决方案分解为各个部分,每个部分本身都是一致的,并且引用了所有涉及的项目,因此SolutionA有Project1、Project2、Project3,SolutionB有Project3、Project4和Project5,但构建两者都将产生一致的构建。请保留一个包含所有发布版本项目的解决方案


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

听起来你想让我们为你研究不,我已经搜索了,但没有找到任何明确的答案,甚至没有找到答案。因此,如果你已经耗尽了互联网,这基本上只留下了意见。你可能想尝试重新编写你的问题,因为目前的形式有点太笼统了。答案应该是正确的。例如,微软为许多主题提出了建议,因此询问他们的建议是什么将为完整的答案提供更具体的基础。你说得对@Guvante,但Stenportov的回答是对我的问题的一个很好的一般性回答,我认为对其他人也会有用。只是提供一个不同的视角:我们的所有产品都有250多个单独的组件。显然,这是一个不同的规模,我们必须有一个不同的解决方案。我们使用MSBuild来管理构建,并且我们有自定义工具来确定项目依赖项并生成MSBuild的构建文件。但是如果你只有几个项目,你最好用一个解决方案,就像Sten说的那样。@MatthewWatson在250个项目中,你肯定需要多个解决方案和可能的自定义版本,但我会尽量避免,因为这会带来麻烦