Visual Studio项目与解决scheme

作为VS新手,我怎么能想到这两个概念,有什么不同?

解决scheme是项目的容器,并跟踪项目之间的依赖关系。

我在其他答案中发现了一些缺失的信息(至less对于来自Eclipse等其他IDE的人员)。 说解决scheme是项目的容器只是事物的一部分。 VS项目的概念特征(决定其“粒度”)是一个项目产生一个输出 :通常是一个可执行文件或一个库(dll)。 因此,如果您要编写使用相关代码的三个可执行文件,您将创build一个解决scheme并至less包含三个项目 – 可能更多。

只是想出一个比喻

解决scheme就像一个房子,像一个房间的项目。 每个房间提供了一个function,而房子,房间的容器提供了连接房间的方式,并适当组织。

有点古怪,但我做了它在飞,所以忍受我:)

Visual Studio似乎无助于让事情更加混乱。 “新项目”实际上创build了一个包含项目的新解决scheme。 “开放项目”实际上是打开一个包含一个(或多个)项目的解决scheme。 (文件菜单中显示“打开项目/解决scheme”,但它确实是开放的解决scheme,没有“closures项目”只有“closures解决scheme”,这是准确的。

所以,在VS你总是在一个解决scheme中工作。 许多解决scheme只包含一个项目,较新的开发人员可能会将其视为同一事物。 但是,您可以将其他项目添加到解决scheme中。

解决scheme可以有许多项目。

解决scheme还可以处理pipe理不同项目之间的依赖关系…确保每个项目都按适当的顺序构build,以便最终的解决scheme能够工作。

解决scheme是项目的容器 – 您也可以使用它们来组织在不同的相关项目(共享的DLL等)中使用的项目。

项目包含组成应用程序或应用程序组件的可执行文件和库文件。

解决scheme是组成应用程序的逻辑相关项目的占位符。 例如,您可以为应用程序的GUI,数据库访问层等设置不同的项目。 这些项目将成为您程序function的具体部门,解决scheme将成为统一所有这些项目的保护伞。

如果有人决定向下滚动,我认为MS文档在描述差异方面做得非常好。 我已经复制粘贴相关位在这里:

当您在Visual Studio中创build应用程序,应用程序,网站,Web应用程序,脚本,插件等时,您将从一个项目开始。 从逻辑上讲,一个项目包含所有的源代码文件,图标,图像,数据文件和其他任何将被编译成可执行程序或网站,否则需要执行编译。 一个项目还包含您的程序将与之通信的各种服务或组件可能需要的所有编译器设置和其他configuration文件。 注意

如果你不想要,你没有使用解决scheme或项目。 您只需将文件打开到Visual Studio并开始编辑您的代码。

从字面意义上讲,项目是一个XML文件(.vbproj,.csproj,* .vcxproj),它定义了一个虚拟文件夹层次结构,以及它“包含”的所有项目的path以及所有的构build设置。 在Visual Studio中,解决scheme资源pipe理器使用项目文件来显示项目内容和设置。 当您编译您的项目时,MSBuild引擎消耗项目文件来创build可执行文件。 您也可以自定义项目来产生其他types的输出。

在逻辑意义上和文件系统中,项目包含在一个解决scheme中,该解决scheme可能包含一个或多个项目,以及构build信息,Visual Studio窗口设置以及任何与任何项目无关的杂项文件。 从字面意义上讲,解决scheme是一个具有自己独特格式的文本文件; 一般不打算手工编辑。

解决scheme有一个关联的* .suo文件,用于存储devise,首选项和configuration信息,用于处理该项目的每个用户。