122

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

4

10 回答 10

148

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

于 2011-05-30T20:16:14.407 回答
82

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

于 2010-03-05T19:08:41.300 回答
53

只想打个比喻。。

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

有点陈词滥调,但我是在飞行中编造出来的,所以请耐心等待:)

于 2010-03-05T19:11:46.953 回答
30

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

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

于 2015-09-17T15:50:16.600 回答
19

万一有人决定向下滚动这么远……我认为MS 文档在描述差异方面做得很好。我已在此处复制粘贴(并改写)相关位:

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

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

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

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

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

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

于 2017-06-01T23:09:27.693 回答
7

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

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

于 2010-03-05T19:08:24.733 回答
4

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

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

于 2010-03-05T19:15:27.133 回答
4

解决方案是一个可读的文本文件,其扩展名为.sln并且具有描述其包含的项目的结构化内容。项目是一个可读的XML格式的文本文件,其扩展名是.vcxproj并且具有根据其 XML 模式的结构化内容,其主要目的是包含源代码文件名列表及其依赖关系或对其他项目源代码的引用。

于 2018-08-14T19:12:48.313 回答
2

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

于 2010-03-05T19:09:29.630 回答
0

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

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

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

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

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

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

于 2018-02-21T09:21:46.357 回答