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

16

我是一个刚接触C#的新手(之前有Python和C语言的编程经验),在Monodevelop或Visual Studio中开始新项目时,这个项目会被放在一个"解决方案"容器中。

我看了微软对“解决方案”定义的说明,但我还不太理解这个的好处以及我应该如何使用它。

根据微软文档的描述:

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

请问有人能解释一下这里的“解决方案”是用来干什么的吗?


https://msdn.microsoft.com/en-us/library/bb165951.aspx - Vivek Nuna
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Andre Hofmeister
https://msdn.microsoft.com/en-us/library/b142f8e7.aspx - Vivek Nuna
2
一个解决方案是“项目组”。理想情况下,它们应该是相关的。例如,如果您使用3层架构,则一个解决方案将包含3个项目:BL、DAL和PRS。 - Pikoh
8个回答

12
一个解决方案是将多个通常相关的项目组合在一起的工作空间。这种构造在需要在多个项目之间共享代码时非常有用。
例如,如果你正在开发一个包含独立服务器端组件的网站,则可以将其分成几个相关的项目:
  • 包含公共接口,并生成DLL的项目
  • 包含数据库定义并生成RDBMS部署脚本的项目
  • 包含服务器端API实现并生成可执行文件的项目
  • 包含网站项目并生成IIS部署脚本的项目
这四个项目彼此相连。将它们放到一个单一的解决方案中,可以让你访问各个部分,同时利用Visual Studio为你简化搜索和重构工作所做的常见索引。

5
虽然其他答案都是正确的,但我觉得它们缺少了概念上的原因。
一个项目是一个独立的工作单元,它可以是Win Forms应用程序、类库、网站、Web服务等。
然而,解决问题可能需要多个部分协同工作,例如Win Forms应用程序需要类库和Web服务才能工作,而网站可能需要Web服务。
解决方案文件是这个概念化模型。
如果你的问题是Win Forms应用程序,那么你就创建一个解决方案,添加Win Forms应用程序和类库。
如果你的问题是网站,那么你就创建一个解决方案,添加网站、Web服务和类库。
包含类库的项目在两个解决方案中可以是相同的,这意味着你不必重复代码或跟踪项目的依赖关系,因为它所依赖的一切已经在你的解决方案中了。

4
一个“解决方案”是你的项目的“容器”。
例如:如果你写一个Windows应用程序,你可以有一个项目用于UI部分,另一个项目用于后端逻辑。
为了更轻松地处理这两个项目,你将它们捆绑在一个解决方案中,不仅允许你通过两个项目进行调试,还可以按照你指定的顺序构建它们。

2

优点

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

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

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

使用“解决方案资源管理器”帮助开发和部署应用程序。

管理在没有解决方案或项目上下文的情况下打开的附加文件。

详细信息请阅读整篇文章:容器式解决方案


2

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


1
一个解决方案将您的所有项目(dll文件)、文件、配置等组合在一起,您提供的引用相当自我解释:

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


1
一个解决方案的好处是你可以在其中添加多个项目。 如果你有一个使用自己库的项目,这是很好的选择。
然后你的解决方案将包含主要项目和库项目。它们可以相互依赖以便按正确的顺序构建。
如果没有解决方案,你只会有主要项目,而你必须单独构建你的库。

-2
简而言之:解决方案是您工作的总和。

1
这太模糊了。如果您认为现有答案中缺少某些内容,请详细说明。 - Jacques Gaudin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接