C#新建项目后新建的各种文件的作用是什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huzhikuizainali
V2EX    C#

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

  •  
  •   huzhikuizainali 2023-11-05 01:06:11 +08:00 1639 次点击
    这是一个创建于 773 天前的主题,其中的信息可能已经有所发展或是发生改变。

    piQ37PU.png

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

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

    frankyzf
        1
    frankyzf  
       2023-11-05 10:01:09 +08:00
    sln 和 csproj 因为工程需要吧。sln 是 solution ,包含多个 project 。每个 project 是一个工程,根据不同的工程类型有不同的代码。这些和学习 c#没有太大关系所以不太讲吧。要想直接试下代码可以试试 linqpad https://www.linqpad.net/
    NewYear
        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 ,既保证了运行环境的高度自定义,又避免了设置复杂的问题。

    所以,项目文件夹除了你的代码,就会存在一些其他的文件,作为新手,不用关注这些,只要关注你的代码放在哪里,从哪个文件开启你的项目即可。
    NewYear
        3
    NewYear  
       2023-11-05 15:51:39 +08:00
    每个文件具体是什么作用,可以百度一下,里面通常有一些项目基础数据,没必要的情况下是不需要修改和管理的。
    Dorian101
        4
    Dorian101  
       2023-11-06 11:53:41 +08:00   1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3627 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:24 PVG 18:24 LAX 02:24 JFK 05:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86