V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huzhikuizainali
V2EX  ›  C#

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

  •  
  •   huzhikuizainali · 175 天前 · 680 次点击
    这是一个创建于 175 天前的主题,其中的信息可能已经有所发展或是发生改变。

    piQ37PU.png

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

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

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

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

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

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

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

    所以,项目文件夹除了你的代码,就会存在一些其他的文件,作为新手,不用关注这些,只要关注你的代码放在哪里,从哪个文件开启你的项目即可。
    NewYear
        3
    NewYear  
       174 天前
    每个文件具体是什么作用,可以百度一下,里面通常有一些项目基础数据,没必要的情况下是不需要修改和管理的。
    Dorian101
        4
    Dorian101  
       173 天前   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1059 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:28 · PVG 02:28 · LAX 11:28 · JFK 14:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.