如何只编译单个.CS文件

问题描述

        我相信大家初学C#的时候,应该都遇到过这样的问题:

        1、一个项目中写了多个Main()方法,但是又想只运行其中的一个;

        2、亦或者只想测试一个Helloworld,结果还要费半天劲新建一个项目;

        3、又比如随着C#中顶级语句的出现,很自然的想把.cs文件当成脚本一样直接运行

        ……

        本文将提供一种简单的方法解决这一问题。

使用环境

        1、软件:VS Code

        2、.net版本:.net 8.0

        3、Windows版本:Windows 11 家庭版

具体步骤

一、安装VS Code以及相关插件(如已安装,则前往下一步)

1、VS Code的安装

        安装步骤上网可以很容易搜到,微软官方也有相应的文档。非本文重点,请各位自行搜索。   

2、插件的安装

        在VS Code拓展中分别搜索C# Dev Kit、Code Runner并安装。

    

二、配置setting.json

1、首先打开设置

2、搜索code-runner.executorMap

点击“在setting.json中编辑”

3、在setting.json中配置Code Runner

注意:请根据自己所使用的dotnet版本(version)和文件路径进行替换。

"csharp": "dotnet \"C:\\Program Files\\dotnet\\sdk\\{version}\\Roslyn\\bincore\\csc.dll\" $fileNameWithoutExt.cs -r:\"C:\\Program Files\\dotnet\\sdk\\{version}\\ref\\netstandard.dll\" && $fileNameWithoutExt && del $fileNameWithoutExt.exe",

对上面代码的简单解释:

1、csc.dll文件进行编译(貌似.net framework是能直接用csc 文件名.cs直接编译的)

2、$fileNameWithoutExt.cs为当前的.cs文件

3、-r netstandard.dll是提供依赖,根据需要进行添加

4、第1个&&后的$fileNameWithoutExt用来执行编译生成的可执行文件(.exe)

5、第2个&&后的del $fileNameWithoutExt.exe是用来删除生成的.exe文件(注:这条命令根据自身需要,也可以选择不删除.exe文件)

示例:

"csharp": "dotnet \"C:\\Program Files\\dotnet\\sdk\\8.0.101\\Roslyn\\bincore\\csc.dll\" $fileNameWithoutExt.cs -r:\"C:\\Program Files\\dotnet\\sdk\\8.0.101\\ref\\netstandard.dll\" && $fileNameWithoutExt && del $fileNameWithoutExt.exe",

三、进行测试

1、配置完成后,新建一个.cs文件(不用新建项目)

示例(Program.cs):

using System;


Console.WriteLine("Hello, World!");
Console.WriteLine("What is your name?");
var name = "Modest Wang";
var currentDate = DateTime.Now;
Console.WriteLine($"{Environment.NewLine}Hello, {name}, on {currentDate:d} at {currentDate:t}!");
Console.Write($"{Environment.NewLine}Press any key to exit...");
//Console.ReadKey(true);
2、编写一段C#代码,然后右键菜单中点击Run Code

执行结果如下:

过程中出现的一些问题及解决方法

最后,目前只进行了简单的测试,如有疑问欢迎在评论区讨论!(❁´◡`❁)

  • 39
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值