C#新建项目后新建的各种文件的作用是什么?

188 天前
 huzhikuizainali

见上图,用 vscode 调试 C# 为什么需要新建项目啊。项目下面有一堆文件。我用 matlab 学打个 hello word 。只需要一个代码文件就可以了。到了 C# 只新建一个.cs 文件什么也干不了。必须要 dotnet new console 新建项目

--------------------- 我发现一般讲代码的书或视频对此都是一代而过。只教怎么新建项目。不解释这些文件的作用和意义。我想先对这些文件的含义有个整体概念。因为我想在 vscode 里用 NUnit 跑个单元测试,体会一下书上的代码。没想到一上来就被这些项目文件给搞晕了。在 matlab 中只需要源代码,就可以跑起来,打断点,看结果。 关于这些文件,我想搞懂他们的作用,意义。对程序的编译运行有什么影响。背后的概念。有什么书籍或视频推荐么?科普向的。我自学!

718 次点击
所在节点    C#
4 条回复
frankyzf
187 天前
sln 和 csproj 因为工程需要吧。sln 是 solution ,包含多个 project 。每个 project 是一个工程,根据不同的工程类型有不同的代码。这些和学习 c#没有太大关系所以不太讲吧。要想直接试下代码可以试试 linqpad https://www.linqpad.net/
NewYear
187 天前
你的理解没有问题,像 php 也是直接一个文件搞定。

那么为什么要有这些附加的文件呢,那是因为 VS 是一个大型软件,支持不同的语言和框架,为了达到管理目的,以及每个项目的高度自定义能力,因此会有一些附加的文件夹和文件。

目的就 2 个,1 个是管理项目的基本属性,例如这个是什么语言,什么版本,调试的时候是什么平台,编译的时候是什么平台,编译好的 exe 文件放哪里,当然非常具体的细节我也没了解,因为那些东西只是为了把项目文件组织起来。作为写代码的不需要关注。

还是用 PHP 来举例,php 里其实是有一个文件 php.ini ,配置了 php 运行的各种参数,拓展所在目录,拓展 dll 等等,有些参数也可以在你写程序的时候在代码里定义,但是有的参数安全性问题所以不准在代码里修改。

再换个例子,例如 IIS ( HTTP 服务器),要运行 C#的程序,每个 IIS 站点都要做一系列配置才能部署好让代码运行,一个服务器上每个站点的配置可能还不一样,那么为什么不把这些设置与网站代码放在一起,运行站点的时候直接读取这个文件就好呢? 这个就是 web.config ,既保证了运行环境的高度自定义,又避免了设置复杂的问题。

所以,项目文件夹除了你的代码,就会存在一些其他的文件,作为新手,不用关注这些,只要关注你的代码放在哪里,从哪个文件开启你的项目即可。
NewYear
187 天前
每个文件具体是什么作用,可以百度一下,里面通常有一些项目基础数据,没必要的情况下是不需要修改和管理的。
Dorian101
186 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/988705

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX