ニュース
C#コードを単一ファイルでスクリプトのように書ける言語機能が「.NET 10」でテスト中
従来のプロジェクトベースへの変換も簡単
2025年5月30日 10:47
米Microsoftは5月28日(現地時間)、プロジェクトファイル不要でC#コードを実行する仕組み「dotnet run app.cs」を発表した。この新機能はファイルベースのアプリとも呼ばれており、単一のC#コードファイルをあたかもスクリプトのように実行できる。
本機能は「.NET 10 Preview 4」の一部としてリリースされており、「C# Dev Kit」拡張機能があれば「Visual Studio Code」で試せる。「C# Dev Kit」に含まれる「C#」拡張機能をプレリリース版に切り替える必要がある点には注意したい(v2.79.8以降)。
ファイルベースのアプリのコードは、たとえば以下のように書ける。
Console.WriteLine("Hello, world!");
実行するには、以下のコマンドを利用する。
dotnet run hello.cs
ファイルベースのアプリはUnixライクなシステムでおなじみの「shebang」行もサポートしているため、以下のように記述すればスクリプトファイルのように直接実行できる(「chmod」コマンドで実行権限を与える必要がある点に注意)。
#!/usr/bin/dotnet run
Console.WriteLine("Hello from a C# script!");
これでWindowsでもLinuxでも利用できるC#スクリプトのようなものを実現できるわけだ。似たようなプロジェクトやソリューションは過去にもあったが、言語機能として標準サポートされるのはやはり魅力。「C#」言語を試すハードルが下がり、学習や自動化シナリオへの活用が進むことに期待したい。
ちなみに、「#」から始まるディレクティブはほかにもあり、「NuGet」パッケージの参照(#:package)やSDKの指定(#:sdk)、「MSBuild」のプロパティ設定(#:property)といったことも行える。
もしそうした機能を活用するうちにコードベースが肥大化し、管理が複雑になってしまっても、以下のコマンドで簡単にプロジェクト化できる。
dotnet project convert app.cs
複数のソースコードやリソースからなる大規模なアプリ開発へ簡単に移行できるというわけだ。とりあえずファイルベース(スクリプト)で気軽にプロトタイピングしたはいいが、あとでメンテナンスできなくなるといった事態を未然に防げる。