什么是C#解决方案以及如何使用它?

问题描述 投票:9回答:7

我是C#的新手(来自Python和C),当我在Monodevelop或Visual Studio中开始一个新项目时,该项目被置于一个“解决方案”容器中。

我看一下微软对解决方案的描述,但我并不真正了解这个的好处以及我应该如何使用它。

Microsoft documentation说:

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

有人可以解释一下“解决方案”的用途吗?

c# visual-studio solution
7个回答
6
投票

解决方案是一个工作空间,它结合了多个项目,这些项目通常彼此相关。在需要在多个项目之间共享某些代码的情况下,该构造非常有用。

例如,如果您正在开发具有单独服务器端组件的网站,则可以将其分成几个相关项目:

  • 包含公共接口的项目,生成DLL
  • 包含数据库定义的项目,生成RDBMS部署脚本
  • 包含服务器端API实现的项目,生成可执行文件
  • 一个网站项目,生成IIS部署脚本

这四个项目相互连接。将它们放在一个解决方案中,您可以访问各个部分,同时利用Visual Studio为您执行的常见索引,以简化对使用的搜索并帮助进行重构。


3
投票

虽然所有其他答案都是正确的,但我觉得他们错过了概念上的原因。

项目是一个自包含的工作,可以是一个Win Forms应用程序,一个类库,一个Web站点,Web服务等。

但是,问题的解决方案可能需要多个部分才能工作,即Win Forms应用程序需要类库才能工作,Web服务也需要工作,但网站可能需要Web服务。

解决方案文件是概念化模型。

如果您的问题是Win Forms应用程序,那么您创建一个解决方案并添加Win Forms应用程序和库。

如果您的问题是网站,那么您创建一个解决方案并添加网站,Web服务和库。

包含库的项目在两个解决方案中都可以是相同的,这意味着您不必重复代码或跟踪项目的依赖关系,因为它所依赖的一切都在您的解决方案中。


2
投票

解决方案是您项目的“容器”。

例如:如果你编写一个Windows应用程序,你可以有一个用于UI-stuff的项目和一个用于Backend-logic的项目。

要轻松处理这两个项目,您可以将它们捆绑到一个解决方案中,不仅允许您通过两个项目进行调试,还可以按照您指定的顺序构建它们。


2
投票

好处

解决方案使您可以专注于开发和部署项目,而不是对管理项目文件,组件和对象的所有细节进行排序。每个Visual Studio解决方案都允许您:

在IDE的同一实例中处理多个项目。

使用适用于整个项目集的设置和选项处理项目。

使用Solution Explorer帮助开发和部署应用程序。

管理在解决方案或项目的上下文之外打开的其他文件。

阅读整篇文章了解更多详情:Solutions as Containers


1
投票

一个解决方案将您的所有项目(dll),文件,配置等组合在一起,您提供的报价非常明显:

从逻辑上讲,在文件系统中,在解决方案中包含一个项目......


1
投票

解决方案包含一个或多个项目。例如,解决方案包含Web项目,移动项目和Windows服务项目。所以,我的应用程序的解决方案有3个项目。


1
投票

解决方案的好处是您可以在其中添加多个项目。如果您有一个使用自己的库的项目,这是很好的

然后,您的解决方案将包含您的主项目和您的库项目。他们都可以依赖彼此,以便他们以正确的顺序建立。

没有解决方案,您只需拥有主项目,就必须单独构建库

© www.soinside.com 2019 - 2024. All rights reserved.