Visual studio VisualStudio项目与解决方案

Visual studio VisualStudio项目与解决方案,visual-studio,projects-and-solutions,solution,visual-studio-project,Visual Studio,Projects And Solutions,Solution,Visual Studio Project,作为VS的新手,我如何看待这两个概念,有什么区别?一个解决方案可以有许多项目 解决方案还可以管理不同项目之间的依赖关系…确保每个项目都以适当的顺序构建,以便最终解决方案能够正常工作。解决方案是项目的容器,并跟踪项目之间的依赖关系。解决方案是项目的容器-您还可以使用它们来组织在不同相关项目(共享dll等)中使用的项。只是想用一个比喻 解决方案就像房子,项目就像房间。每个房间都提供了一种功能,而房屋作为房间的容器,提供了将房间连接在一起并适当组织它们的方法 有点陈词滥调,但我是在飞的时候编出来的,所

作为VS的新手,我如何看待这两个概念,有什么区别?

一个解决方案可以有许多项目


解决方案还可以管理不同项目之间的依赖关系…确保每个项目都以适当的顺序构建,以便最终解决方案能够正常工作。

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

解决方案是项目的容器-您还可以使用它们来组织在不同相关项目(共享dll等)中使用的项。

只是想用一个比喻

解决方案就像房子,项目就像房间。每个房间都提供了一种功能,而房屋作为房间的容器,提供了将房间连接在一起并适当组织它们的方法


有点陈词滥调,但我是在飞的时候编出来的,所以请记住:)

一个项目包含可执行文件和库文件,它们构成了一个应用程序或应用程序的组件


解决方案是构成应用程序的逻辑相关项目的占位符。例如,对于应用程序的GUI、数据库访问层等,可以有单独的项目。项目将是程序功能的特定划分,解决方案将是将所有项目统一在一个应用程序下的总括。

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

Visual Studio似乎会让事情变得更加混乱,这无助于解决问题。“新项目”实际上创建了一个包含项目的新解决方案。“开放项目”实际上是打开一个包含一个(或多个)项目的解决方案。(文件菜单上显示“打开项目/解决方案”,但实际上是打开解决方案。没有“关闭项目”,只有“关闭解决方案”是准确的


因此,在VS中,您总是在一个解决方案中工作。许多解决方案只包含一个项目,较新的开发人员可能会认为它们是同一件事。但是,您可以将其他项目添加到解决方案中。

如果有人决定向下滚动到此为止……我认为该解决方案在描述差异方面做得相当好。我已经复制了在此处粘贴(并重新表述)相关位:

在Visual Studio中创建应用程序、应用程序、网站、Web应用程序、脚本、插件等时,首先从项目开始。从逻辑上讲,项目包含所有源代码文件、图标、图像、数据文件以及将被编译成可执行程序或网站的任何其他内容,或者执行编译所需的其他内容项目还包含程序将要与之通信的各种服务或组件可能需要的所有编译器设置和其他配置文件

如果不想,您不必使用解决方案或项目。您只需在Visual Studio中打开文件并开始编辑代码即可

从字面意义上讲,项目是一个XML文件(
.vbproj
.csproj
.vcxproj
),它定义了一个虚拟文件夹层次结构,以及指向它“包含”的所有项和所有生成设置的路径

在Visual Studio中,解决方案资源管理器使用项目文件来显示项目内容和设置。编译项目时,MSBuild引擎使用项目文件来创建可执行文件。您还可以自定义项目以生成其他类型的输出

从逻辑意义上讲,项目包含在解决方案中的文件系统中,该解决方案可能包含一个或多个项目,以及生成信息、Visual Studio窗口设置和与任何项目都不关联的任何杂项文件。从字面意义上讲,解决方案是一个具有自己独特格式的文本文件;它是通用的y不打算手动编辑

解决方案有一个关联的
.suo
文件,该文件存储了参与项目的每个用户的设置、首选项和配置信息

解决方案是Visual Studio用于组织一个或多个相关项目的容器。当您在Visual Studio中打开解决方案时,它将自动加载其中包含的所有项目

在VisualStudio中创建新项目时,如果尚未打开解决方案,它会自动创建一个解决方案来容纳该项目

您可以设置项目对解决方案中其他项目的依赖关系。在生成依赖项目所依赖的项目后,将生成该依赖项目

有关更多详情,请参阅-

如果您来自Eclipse背景,您可能会转到项目的构建路径,并在其他项目上添加依赖项或添加外部jar。在VS中,您可以在一个名为solution的容器中完成此操作,其中所有相关项目都被分组在一起


例如,假设您在xamrin中构建android和iOS应用程序,将有一些通用代码和资源可以放在单独的项目中,然后您的android和iOS项目可以依赖于此通用代码项目。您也可以有项目来测试这些项目等。

a解决方案是一个可读的文本文件,其xtension是
.sln
,具有描述其包含的项目的结构化内容。项目是一个可读的XML格式文本文件,其扩展名为
.vcxproj
,具有符合其XML模式的结构化内容,其主要目的是包含so列表urce代码文件名及其名称