见上图,用 vscode 调试 C# 为什么需要新建项目啊。项目下面有一堆文件。我用 matlab 学打个 hello word 。只需要一个代码文件就可以了。到了 C# 只新建一个.cs 文件什么也干不了。必须要 dotnet new console 新建项目
--------------------- 我发现一般讲代码的书或视频对此都是一代而过。只教怎么新建项目。不解释这些文件的作用和意义。我想先对这些文件的含义有个整体概念。因为我想在 vscode 里用 NUnit 跑个单元测试,体会一下书上的代码。没想到一上来就被这些项目文件给搞晕了。在 matlab 中只需要源代码,就可以跑起来,打断点,看结果。 关于这些文件,我想搞懂他们的作用,意义。对程序的编译运行有什么影响。背后的概念。有什么书籍或视频推荐么?科普向的。我自学!
1
frankyzf 2023-11-05 10:01:09 +08:00
sln 和 csproj 因为工程需要吧。sln 是 solution ,包含多个 project 。每个 project 是一个工程,根据不同的工程类型有不同的代码。这些和学习 c#没有太大关系所以不太讲吧。要想直接试下代码可以试试 linqpad https://www.linqpad.net/
|
2
NewYear 2023-11-05 15:51:10 +08:00
你的理解没有问题,像 php 也是直接一个文件搞定。
那么为什么要有这些附加的文件呢,那是因为 VS 是一个大型软件,支持不同的语言和框架,为了达到管理目的,以及每个项目的高度自定义能力,因此会有一些附加的文件夹和文件。 目的就 2 个,1 个是管理项目的基本属性,例如这个是什么语言,什么版本,调试的时候是什么平台,编译的时候是什么平台,编译好的 exe 文件放哪里,当然非常具体的细节我也没了解,因为那些东西只是为了把项目文件组织起来。作为写代码的不需要关注。 还是用 PHP 来举例,php 里其实是有一个文件 php.ini ,配置了 php 运行的各种参数,拓展所在目录,拓展 dll 等等,有些参数也可以在你写程序的时候在代码里定义,但是有的参数安全性问题所以不准在代码里修改。 再换个例子,例如 IIS ( HTTP 服务器),要运行 C#的程序,每个 IIS 站点都要做一系列配置才能部署好让代码运行,一个服务器上每个站点的配置可能还不一样,那么为什么不把这些设置与网站代码放在一起,运行站点的时候直接读取这个文件就好呢? 这个就是 web.config ,既保证了运行环境的高度自定义,又避免了设置复杂的问题。 所以,项目文件夹除了你的代码,就会存在一些其他的文件,作为新手,不用关注这些,只要关注你的代码放在哪里,从哪个文件开启你的项目即可。 |
3
NewYear 2023-11-05 15:51:39 +08:00
每个文件具体是什么作用,可以百度一下,里面通常有一些项目基础数据,没必要的情况下是不需要修改和管理的。
|
4
Dorian101 2023-11-06 11:53:41 +08:00 1
What are solutions and projects in Visual Studio?
https://learn.microsoft.com/en-us/visualstudio/ide/solutions-and-projects-in-visual-studio?view=vs-2022 |