Visual Studio项目与解决方案

时间:2010-03-05 19:07:27

标签: visual-studio projects-and-solutions solution visual-studio-project

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

10 个答案:

答案 0 :(得分:114)

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

答案 1 :(得分:65)

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

答案 2 :(得分:38)

想出一个比喻..

解决方案就像房子,像房间一样的项目。每个房间都提供一个功能,而房子,一个房间的容器,提供了连接房间和适当组织它们的方法。

有点陈词滥调,但我是在飞行中做到的,所以忍受我:)

答案 3 :(得分:22)

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

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

答案 4 :(得分:9)

如果有人决定向下滚动这一点......我认为MS docs在描述差异方面做得非常好。我在这里复制粘贴(并改写)相关位:

  

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

     

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

     

从字面意义上讲,项目是一个XML文件(.vbproj.csproj.vcxproj),它定义了一个虚拟文件夹层次结构以及它所有项目的路径。 ;含有"和所有构建设置。

     

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

     

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

解决方案具有关联的.suo文件,该文件存储已在项目中工作的每个用户的设置,首选项和配置信息。

答案 5 :(得分:6)

解决方案可以有很多项目。

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

答案 6 :(得分:3)

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

解决方案是构成应用程序的逻辑相关项目的占位符。例如,您可以为应用程序的GUI,数据库访问层等创建单独的项目。这些项目将是您的计划功能的特定部门,解决方案将是在一个应用程序下统一所有项目的保护伞。

答案 7 :(得分:2)

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

答案 8 :(得分:2)

解决方案是可读的文本文件,扩展名为.sln,其结构化内容描述了其中包含的项目项目是一种可读的 XML 格式的文本文件,其扩展名为.vcxproj,并根据其XML模式具有结构化的内容,其主要目的是包含以下内容:列出源代码文件名及其相关性或对其他项目源代码的引用。

答案 9 :(得分:0)

  

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

     

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

     

您可以在解决方案中设置其他项目的项目依赖项。依赖项目是在构建它依赖的项目之后构建的。

有关详细信息,请参阅 - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

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

EG。假设你是xamrin中的构建和android和iOS应用程序,会有一些常见的代码和资源可以放在一个单独的项目中,然后你的android和iOS项目可以依赖于这个常见的代码项目。你也可以有项目来测试这些项目等。