dotnet-script를 사용하는 C# 스크립트
.py
파일에 일부 코드를 작성하고 python3 filename.py
로 실행할 수 있는지 알고 계십니까? C#도 스크립트를 작성할 수 있습니다. 제가 1년 전에 배운 것입니다.Roslyn은 C# 스크립트를 가능하게 했습니다. 관심이 있는 경우 제목이 C# Scripting인 2016년 1월 MSDN 블로그 게시물이 있습니다.
제가 정말 매료된 도구는 dotnet-script 입니다. 이 도구는 omnisharp를 통해 VS Code에서 완전한 인텔리센스를 지원하는 크로스 플랫폼 .NET Core 글로벌 도구이며 실험 요구에 맞는 대부분의 사용 사례를 다룹니다.
전제 조건
설치
먼저 최신 버전의 .NET Core SDK가 dot.net에서 설치되어 있는지 확인하십시오. 최소 요구 사항은 .NET Core 2.1입니다.
가장 쉬운 설치 방법
public static void main
은 전역 도구로 설치하는 것입니다.dotnet tool install --global dotnet-script
이제
dotnet-script
를 실행할 수 있고 dotnet script --version
도구 버전이 인쇄되어야 합니다.안녕하세요 세계
mkdir console
cd console
dotnet script init hello
dotnet script hello.csx
dotnet-script
파일 및 디버그 지원용 VS Code.csx
파일과 함께 omnisharp.json
(C# 스크립트) 파일을 만듭니다. launch.json
를 사용하여 실행됩니다. 생성된
dotnet script filename
파일의 내용은 다음과 같습니다.#!/usr/bin/env dotnet-script
Console.WriteLine("Hello world!");
첫 번째 줄은 *nix 사용자가 잘 알고 있어야 하는 shebang입니다.
hello.csx
로 실행할 수 있으며 제대로 작동합니다! (Windows에서도 작동하지만 먼저 ./hello.csx
를 사용하여 .csx
파일을 dotnet-script와 연결해야 합니다.)또 다른 빠른 예
콘솔 응용 프로그램의 일반적인 사용 사례는 새 라이브러리를 실험하는 것이며
dotnet script register
는 작업에 완벽한 도구입니다. stateless 라이브러리에 대해 배우고 있다고 가정해 보겠습니다. 실험 방법은 다음과 같습니다.dotnet-script
를 사용하여 새 스크립트를 만듭니다. dotnet script init stateless
를 사용하여 VS Code에서 폴더를 엽니다. code .
지시문을 사용하여 너겟 패키지를 가져옵니다. #r
(또는 Cmd+.
)를 사용하여 필요한 경우 using 문을 추가합니다. 내
Ctrl+.
파일은 다음과 같습니다.#!/usr/bin/env dotnet-script
#r "nuget: Stateless, 4.2.1"
// Copied from: https://github.com/dotnet-state-machine/stateless/blob/dev/example/OnOffExample/Program.cs
using Stateless;
const string on = "On";
const string off = "Off";
const char space = ' ';
// Instantiate a new state machine in the 'off' state
var onOffSwitch = new StateMachine<string, char>(off);
// Configure state machine with the Configure method, supplying the state to be configured as a parameter
onOffSwitch.Configure(off).Permit(space, on);
onOffSwitch.Configure(on).Permit(space, off);
Console.WriteLine("Press <space> to toggle the switch. Any other key will exit the program.");
while (true)
{
Console.WriteLine("Switch is in state: " + onOffSwitch.State);
var pressed = Console.ReadKey(true).KeyChar;
// Check if user wants to exit
if (pressed != space) break;
// Use the Fire method with the trigger as payload to supply the state machine with an event.
// The state machine will react according to its configuration.
onOffSwitch.Fire(pressed);
}
VS Code를 사용한 개발이 처음인 사용자를 위한 참고 사항:
stateless.csx
--> Cmd+Shift+P
. 자세한 내용은 filipw/dotnet-script#424을 참조하십시오. Omnisharp: Restart Omnisharp
속성을 "console": "integratedTerminal"
에 추가하여 통합 터미널을 사용하도록 구성하여 변경할 수 있습니다. 추가 정보here . 그게 다야. 라고 묻는다면 꽤 매끄러운 것 같아요.
내가 좋아하는 것
.vscode/launch.json
은 다음과 같습니다.dotnet-script
또는 public static void main
파일이 없습니다. Reference
이 문제에 관하여(dotnet-script를 사용하는 C# 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/galdin/c-scripts-using-dotnet-script-3b1k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)