目录
介绍
最近,有人在Code Project的论坛上问您如何进行离线C#代码段测试?而且大多数人会创建许多控制台解决方案来试用代码,这很麻烦,而且这是混乱的,你失去你所做的在众多的ConsoleApp文件夹。
我多年来一直使用的是经过修改的NScript C#运行程序,但是最近我安装了VSCode来帮助使用智能感知编写C#代码,而在记事本中执行此操作时会丢失该代码。
这使您可以快速尝试事物或编写C#脚本,而不必启动Visual Studio创建项目,并且通常在开始之前就忘记了要执行的操作。
需要什么
您所需要做的就是VSCode,VSCode的C#语言扩展以及在下载zip文件中提供的NScript可执行文件,或在此处获取源代码:
- 我重写的NScript代码:https://github.com/mgholam/NScript
怎么做
若要使VSCode在C#代码上使用智能感知,您需要在代码文件夹中包含一个.csproj文件。.csproj不需要有任何东西,是那样简单,如下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
</Project>
要注意的一件事是确保TargetFramework匹配您计算机上安装的内容。如果遇到代码有波浪线,请检查该netcoreapp3.1值是否与您所拥有的匹配。
现在你可以
现在,您可以将所有脚本和代码片段放在一个文件夹中,并在VSCode中将其全部打开,并使用完整的智能感知进行编码。您在每个文件中需要做的就是确保它们的namespace不同,以便VSCode不会抱怨您已经定义了program和Main()。
// script.cs
using System;
namespace script
{
public class program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello world!");
}
}
}
// script2.cs
using System;
namespace script2
{
public class program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello world too!");
}
}
}
要运行代码,您可以通过终端窗口或命令行执行以下操作:
nscript.exe script.cs
NScript特征
有2个可执行文件NScript.exe是一个控制台模式脚本运行其输出到控制台,NScriptw.exe这是当你有一个Windows模式脚本运行WinForm脚本,你不希望被视为一个黑色的命令窗口。
如果需要在脚本中使用库,则可以在代码顶部添加注释行以引用任何DLL文件:
// ref : mylib.dll
// ref : c:\folder\mylib2.dll
using System;
...
如果你喜欢你的脚本,可以使用以下/c标志将其编译为可执行文件:
nscript.exe /c script.cs
VSCode中的调试
要启用调试并停止dotnet抱怨定义的多个入口点,只需将StartupObject行添加到vscode的.csproj文件中:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<StartupObject>script.program</StartupObject>
</PropertyGroup>
</Project>
显然,VSCode使用dotnet core 来编译代码,而NScript使用.NET v4,因此会有差异,但是出于脚本和调试的目的,您应该没有任何问题。