TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.76K subscribers
Post #1615 1.42K
День 1302. #ЗаметкиНаПолях
Выполнение Скриптов на C# и .NET Core
Вы, вероятно, знаете, что в .NET Core очень легко создать новое приложение «Hello World» и начать писать код. Просто установите .NET Core, затем выполните dotnet new console, что сгенерирует файл проекта и базовое приложение, затем dotnet run скомпилирует и запустит его. Команда new создаст весь вспомогательный код, папки obj, bin и т. д. Когда вы выполняете dotnet run, на самом деле это комбинация команд dotnet build и dotnet exec myapp.dll.

Что может быть проще? А что насчёт сценариев в .NET Core?

На помощь придёт инструмент сценариев dotnet-script.
Для начала установим инструмент:
>dotnet tool install -g dotnet-script

Создадим файл скрипта helloworld.csx со следующим содержимым:
Console.WriteLine("Hello world!");

Теперь его можно выполнить:
>dotnet script helloworld.csx
Hello world!

Замечание: Если вы будете это делать в Linux или OSX, вам нужно будет указать в первой строке стандартный заголовок, говорящий о том, какая программа может исполнять этот скрипт:
#!/usr/bin/env dotnet-script

Заголовок аналогичен файлам bash, python и т.п.

Скрипты могут иметь классы и подпрограммы. Заметьте, выражения верхнего уровня (без этих ваших Program и Main) использовались здесь ещё задолго до того, как это стало мейнстримом:
using System.Collections.Generic;
using System.Linq;

foreach (var i in Fibonacci().Take(20))
{
Console.WriteLine(i);
}

private IEnumerable<int> Fibonacci()
{
int current = 1, next = 1;

while (true)
{
yield return current;
next = current + (current = next);
}
}

Если нужно, вы можете обратиться к NuGet пакету внутри скрипта, используя синтаксис #r от Roslyn:
#r "nuget: AutoMapper, 6.1.0"
Console.WriteLine("Hello AutoMapper!");

Но и это ещё не всё. Имея dotnet-script, установленный как глобальная утилита, как мы сделали выше, вы можете использовать его как REPL (интерактивную среду) прямо в консоли!
>dotnet script
> 2+2
4
> var x = "dotnet script";
> x.ToUpper()
"DOTNET SCRIPT"

Источник: https://www.hanselman.com/blog/c-and-net-core-scripting-with-the-dotnetscript-global-tool
  • 👍 15
More from @netdeveloperdiary
  1. Oct 13, 2026День 2813. #ЗаметкиНаПолях #Async Ещё Раз Про Async/Await в C#. Часть 1 1. Почему существу…
  2. Oct 12, 2026День 2812. #Карьера #AI Как Разработчикам Оставаться Полезными, Когда Код Пишет ИИ? По мер…
  3. Oct 11, 2026День 2811. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  4. Oct 10, 2026День 2810. #ЧтоНовенького #VSCode Более Быстрый и Лёгкий C# Dev Kit Мы, разработчики, люби…
  5. Oct 9, 2026День 2809. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Окончание Начало 3.…
  6. Oct 8, 2026День 2808. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Начало В ИТ есть се…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →