活动地址:毕业季·进击的技术er
夏日炎炎,热浪中我们迎来毕业季,这是告别,也是迈向新起点的开始,CSDN诚邀各毕业生/在校生/职场人讲述自己的毕业季故事,分享自己的经验,技术er的进击之路,等你来书写!我是从自身经历出发,分享自己的经验。
从哪个瞬间开始让你决定学习编程语言?
- 第一次接触编程语言是在 12 岁
- 那个时候看叔叔在一台赛扬上写 cs 游戏!
- 现在还有人知道赛扬机吗?我清晰地记得那是台 32 MB 的赛扬机。
- 话说现在的小孩子们还玩 反恐精英/CS/魔兽/红警 什么的单机游戏吗?
- 我可是亲眼看着叔叔咔咔咔的敲键盘 然后非常神奇的还能玩!!!
- 那是我第一次遇见 c#
- 从此 c# 在我心里打上了一个怎么也抹不去的标签:
- 就是用来写游戏的!!!
-
- 自学过 C、Java 感觉要是写游戏还是 C# 用起来舒服
- 毕竟控件咔咔点两下就是一个窗口 随便写写功能连上数据库就能跑起来玩……
- 于是这次打算把 c# 这个冷门语言重新拾起来!应该不难吧 Java 的底子在那儿呢
##################################################
目录
任何一台可以打现代游戏的 Windows 都可以运行 c# 程序
##################################################
——————————
这不是吹牛
只是有 32 位和 64 位的区别而已
只要系统安装了对应的 .NET 框架 哪怕跑的是 Linux 都可以运行 c#
只不过要对应版本 例如你写的 .Net Framework 4.0 的程序要想运行在 2.0 的 Framework/框架 上是痴心妄想
不支持向下兼容 例如 XP 默认就没带 .net 框架
而 Vista 和 Windows 7 都带了框架 只是版本不同而已
——————————
%%%%%
通过命令提示符
以管理员身份运行 cmd

输入该命令以查看:
reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" /s
如果是 4.X 的版本可以使用该命令查看:
reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4" /s
示例如下:
- Microsoft Windows [版本 6.3.9600]
- (c) 2013 Microsoft Corporation。保留所有权利。
-
- C:\Windows\system32>reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP"
- /s
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\CDF
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\CDF\v4.0
- NetTcpPortSharingInstalled REG_DWORD 0x1
- HttpNamespaceReservationInstalled REG_DWORD 0x1
- WMIInstalled REG_DWORD 0x1
- SMSvcHostPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
- NonHttpActivationInstalled REG_DWORD 0x1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client
- Version REG_SZ 4.8.03761
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- InstallPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x80eb1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client\1033
- Version REG_SZ 4.8.03761
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x80eb1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client\2052
- Version REG_SZ 4.5.51641
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x5c733
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full
- Version REG_SZ 4.8.03761
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- InstallPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x80eb1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\1033
- Version REG_SZ 4.8.03761
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x80eb1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\2052
- Version REG_SZ 4.5.51641
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x5c733
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4.0
- (默认) REG_SZ deprecated
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4.0\Client
- Version REG_SZ 4.0.0.0
- Install REG_DWORD 0x1
-
-
- C:\Windows\system32>reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v
- 4" /s
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client
- Version REG_SZ 4.8.03761
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- InstallPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x80eb1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client\1033
- Version REG_SZ 4.8.03761
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x80eb1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client\2052
- Version REG_SZ 4.5.51641
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x5c733
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full
- Version REG_SZ 4.8.03761
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- InstallPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x80eb1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\1033
- Version REG_SZ 4.8.03761
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x80eb1
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\2052
- Version REG_SZ 4.5.51641
- CBS REG_DWORD 0x1
- TargetVersion REG_SZ 4.0.0
- Install REG_DWORD 0x1
- Servicing REG_DWORD 0x0
- Release REG_DWORD 0x5c733
-
-
- C:\Windows\system32>
%%%%%
文件管理器中进入该路径 可以看到 32 位和 64 位的 .net 框架:
C:\Windows\Microsoft.NET\Framework
在 版本目录 中找到 C# 编译器右击选择 属性 查看 详细信息 选项卡中的 产品版本:

这里是 4.8
%%%%%
在 程序和功能 这个界面直接就能找到安装的框架版本:

##################################################
——————————
所以说我们不需要安装任何 IDE 就能编写编译 c# 程序
在 C 盘根目录创建一个 .cs 结尾的文件 这是 c# 程序的源文件
然后在其中编写代码:
- using System;
-
- class Program
- {
- static void Main(string[] args)
- { /* 我的第一个 C# 程序! */
- Console.WriteLine( "Hello,World!" );
- Console.ReadLine();
- }
- }
保存退出 我这里保存为 hw.cs 文件:

以管理员身份运行 cmd
进入 .NET 安装目录:
cd C:\Windows\Microsoft.NET
进入 64 位的 .NET 框架:
cd Framework64
进入对应版本目录 可以按 TAB 键补全:
cd v4.0.30319
最后找到 csc.exe 编译器 这是 c# 编译器:
- C:\Windows\system32>cd C:\Windows\Microsoft.NET
-
- C:\Windows\Microsoft.NET>cd Framework64
-
- C:\Windows\Microsoft.NET\Framework64>cd v4.0.30319
-
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>dir csc.exe
- 驱动器 C 中的卷是 System_8.1
- 卷的序列号是 B6F6-A064
-
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319 的目录
-
- 2022/05/15 22:40 2,758,280 csc.exe
- 1 个文件 2,758,280 字节
- 0 个目录 6,294,503,424 可用字节
-
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
开始编译我们编写的 .cs 文件 如下就是编译成功:
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>csc C:\hw.cs
- Microsoft (R) Visual C# Compiler version 4.8.3761.0
- for C# 5
- Copyright (C) Microsoft Corporation. All rights reserved.
- This compiler is provided as part of the Microsoft (R) .NET Framework, but only
- supports language versions up to C# 5, which is no longer the latest version. Fo
- r compilers that support newer versions of the C# programming language, see http
- ://go.microsoft.com/fwlink/?LinkID=533240
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
csc 是 c# 编译器
C:\hw.cs 是 c 盘下的 .cs 源文件
默认编译到当前目录下也就是
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
cmd 必须是管理员身份不然会出现访问错误:

- Microsoft Windows [版本 6.3.9600]
- (c) 2013 Microsoft Corporation。保留所有权利。
-
- C:\Users\byme>cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
-
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>csc C:\hw.cs
- Microsoft (R) Visual C# Compiler version 4.8.3761.0
- for C# 5
- Copyright (C) Microsoft Corporation. All rights reserved.
- This compiler is provided as part of the Microsoft (R) .NET Framework, but only
- supports language versions up to C# 5, which is no longer the latest version. Fo
- r compilers that support newer versions of the C# programming language, see http
- ://go.microsoft.com/fwlink/?LinkID=533240
- CSC97CE4F50C8A4D9DA23C52C950AE2F41.TMP: error CS1567: Error generating Win32
- resource: 拒绝访问。
- warning CS1610: Unable to delete temporary file
- 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\CSC97CE4F50C8A4D9DA23C5
- 2C950AE2F41.TMP' used for default Win32 resource --
- 系统找不到指定的文件。
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
找到编译的程序 输入程序名就可以运行:
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>dir hw.exe
- 驱动器 C 中的卷是 System_8.1
- 卷的序列号是 B6F6-A064
-
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319 的目录
-
- 2022/06/27 17:18 3,584 hw.exe
- 1 个文件 3,584 字节
- 0 个目录 6,292,127,744 可用字节
-
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>hw.exe
- Hello,World!
-
-
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>hw
- Hello,World!
-
-
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
也可以在文件管理器中找到编译出来的程序 双击运行:

——————————
一般来说离开了安装目录就找不到编译器了:
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319>d:
-
- D:\>csc
- 'csc' 不是内部或外部命令,也不是可运行的程序
- 或批处理文件。
-
- D:\>
%%%%%
临时设置环境变量
此时使用 set 命令查看一下系统环境变量:
- D:\>set
- ALLUSERSPROFILE=C:\ProgramData
- APPDATA=C:\Users\byme\AppData\Roaming
- CLASSPATH=.;D:\Java\jdk1.7.0_79\lib;D:\Java\jdk1.7.0_79\lib\tools.jar
- CommonProgramFiles=C:\Program Files\Common Files
- CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
- CommonProgramW6432=C:\Program Files\Common Files
- COMPUTERNAME=LILIAN
- ComSpec=C:\Windows\system32\cmd.exe
- FP_NO_HOST_CHECK=NO
- HOMEDRIVE=C:
- HOMEPATH=\Users\byme
- JAVA_HOME=D:\Java\jdk1.7.0_79
- LOCALAPPDATA=C:\Users\byme\AppData\Local
- LOGONSERVER=\\LILIAN
- MOZ_PLUGIN_PATH=C:\Program Files (x86)\Foxit Software\Foxit PDF Reader\plugins\
- NUMBER_OF_PROCESSORS=4
- OS=Windows_NT
- Path=C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86
- )\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\P
- rogram Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System
- 32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel
- \OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\P
- rogram Files\qemu;D:\Java\jdk1.7.0_79\bin;D:\Java\jdk1.7.0_79\jre\bin;
- PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
- PROCESSOR_ARCHITECTURE=AMD64
- PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
- PROCESSOR_LEVEL=6
- PROCESSOR_REVISION=2a07
- ProgramData=C:\ProgramData
- ProgramFiles=C:\Program Files
- ProgramFiles(x86)=C:\Program Files (x86)
- ProgramW6432=C:\Program Files
- PROMPT=$P$G
- PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
- PUBLIC=C:\Users\Public
- SystemDrive=C:
- SystemRoot=C:\Windows
- TEMP=C:\Users\byme\AppData\Local\Temp
- TMP=C:\Users\byme\AppData\Local\Temp
- USERDOMAIN=lilian
- USERDOMAIN_ROAMINGPROFILE=lilian
- USERNAME=byme
- USERPROFILE=C:\Users\byme
- VBOX_MSI_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\
- windir=C:\Windows
-
- D:\>
太多了 单独查看 Path 的值:
- D:\>set Path
- Path=C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86
- )\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\P
- rogram Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System
- 32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel
- \OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\P
- rogram Files\qemu;D:\Java\jdk1.7.0_79\bin;D:\Java\jdk1.7.0_79\jre\bin;
- PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
-
- D:\>
将 csc 所在目录添加进环境变量:
- D:\>set path=%path%;C:\Windows\Microsoft.NET\Framework64\v4.0.30319
-
- D:\>set path
- Path=C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86
- )\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\P
- rogram Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System
- 32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel
- \OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\P
- rogram Files\qemu;D:\Java\jdk1.7.0_79\bin;D:\Java\jdk1.7.0_79\jre\bin;;C:\Window
- s\Microsoft.NET\Framework64\v4.0.30319
- PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
-
- D:\>
%%%%%
命令如下:
set "path" "%path%;C:\Windows\Microsoft.NET\Framework64\v4.0.30319"
示例:
- C:\Users\byme>setx "path" "%path%;C:\Windows\Microsoft.NET\Framework64\v4.0.3031
- 9"
-
- 成功: 指定的值已得到保存。
-
- C:\Users\byme>set path
- Path=C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86
- )\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\P
- rogram Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System
- 32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel
- \OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\P
- rogram Files\qemu;D:\Java\jdk1.7.0_79\bin;D:\Java\jdk1.7.0_79\jre\bin;
- PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
-
- C:\Users\byme>
此时关掉当前终端 重新打开一个 cmd 终端 编译器可以在任何地方使用:
- Microsoft Windows [版本 6.3.9600]
- (c) 2013 Microsoft Corporation。保留所有权利。
-
- C:\Users\byme>csc
- Microsoft (R) Visual C# Compiler version 4.8.3761.0
- for C# 5
- Copyright (C) Microsoft Corporation. All rights reserved.
-
- This compiler is provided as part of the Microsoft (R) .NET Framework, but only
- supports language versions up to C# 5, which is no longer the latest version. Fo
- r compilers that support newer versions of the C# programming language, see http
- ://go.microsoft.com/fwlink/?LinkID=533240
-
- warning CS2008: No source files specified
- error CS1562: Outputs without source must have the /out option specified
-
- C:\Users\byme>
之后就可以随意编译 c# 源文件啦:
- Microsoft Windows [版本 6.3.9600]
- (c) 2013 Microsoft Corporation。保留所有权利。
-
- C:\Windows\system32>cd ..
-
- C:\Windows>cd ..
-
- C:\>dir hw.cs /* 找到源文件 */
- 驱动器 C 中的卷是 System_8.1
- 卷的序列号是 B6F6-A064
-
- C:\ 的目录
-
- 2022/06/27 17:16 168 hw.cs
- 1 个文件 168 字节
- 0 个目录 6,312,771,584 可用字节
-
- C:\>dir hw.exe /* 还没有编译所以没有该程序 */
- 驱动器 C 中的卷是 System_8.1
- 卷的序列号是 B6F6-A064
-
- C:\ 的目录
-
- 找不到文件
-
- C:\>csc hw.cs /* 编译成功 */
- Microsoft (R) Visual C# Compiler version 4.8.3761.0
- for C# 5
- Copyright (C) Microsoft Corporation. All rights reserved.
-
- This compiler is provided as part of the Microsoft (R) .NET Framework, but only
- supports language versions up to C# 5, which is no longer the latest version. Fo
- r compilers that support newer versions of the C# programming language, see http
- ://go.microsoft.com/fwlink/?LinkID=533240
- C:\>dir hw.exe /* 找到编译后的程序 */
- 驱动器 C 中的卷是 System_8.1
- 卷的序列号是 B6F6-A064
- C:\ 的目录
- 2022/06/27 18:01 3,584 hw.exe
- 1 个文件 3,584 字节
- 0 个目录 6,312,632,320 可用字节
- C:\>hw /* 运行成功 */
- Hello,World!
- C:\>
活动地址:毕业季·进击的技术er