0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

さらに便利になったC#のFile-based Appsをあらためて推します

0
Last updated at Posted at 2026-10-19

概要

以前から便利だと感じているC#のFile-based Appsですが、.NET 11では他のC#ファイルをインポートできるようになり、共通処理を分けて使いやすくなりました。C#ファイルをその場で実行する使い方から、ネイティブexeにして.NETがない環境へ持っていく使い方まで、あらためて紹介します。

ChatGPT 画像 2026年9月29日 17_35_29.png

説明

以前からC#のFile-based Appsが便利だと推していますが、.NET 11でさらに進化したようなので、あらためて推す記事を書いてみます。公式情報は次のページにまとまっています。

端的に言うと、C#ファイルだけで次の2つができます。プロジェクトではなく、 ~.cs ファイルだけで、です。

  • C#ファイルをその場でコンパイル・実行する
  • C#ファイルをネイティブexeにビルドしておき、.NETがない環境で実行する

バッチファイルやPowerShellよりもC#の方が得意なら、それらの用途を置き換えるポテンシャルがあると思います。

.NET SDKがあれば、その場で実行できる

まずは基本です。.NET SDKがある環境なら、dotnet ~.cs でC#ファイルをその場でコンパイルして実行できます。

バッチファイルのように、コードを変えてすぐ動かす使い方がしやすいです。ビルドサーバーのスクリプトなどにも使えます。

NuGetも使えるので、JSONやSQLiteを扱うような、ちょっと気合いの入った処理も書けます。NLogも使えます。

ネイティブexeにすれば、.NETがない環境でも動く

デフォルトがNative AOTなので、dotnet publishでexeにすれば、実行先に.NETがなくても動きます。追加インストールができない環境向けのツールなどに使えます。

こちらは、NuGetで参照したパッケージによってはNative AOT非対応の場合も有るので、パッケージの対応状況は要確認です。

非対応の場合でも、.NETランタイム必須で良いならば、 #:property PublishAot=false で無効化することもできます。

処理を別ファイルに分けて使える

ここからは最近のアップデートです。他のC#ファイルを #:include でインポートできるようになりました。

例えば、APIの認証処理だけを1つのファイルにまとめておき、APIを呼ぶ薄いC#ファイルを目的ごとに作る、といった使い方ができます。これで、同じ処理のコピペがだいぶ減りました。

これは .NET 11 の開発中に発表されましたが、ありがたいことに .NET 10 にもさっそく実装されたので、すぐに使えます。

普通のクラスライブラリのテストコードにも使える

.NET 11 では、ビルド済みのクラスライブラリも #:include でインポート出来るようになりました。

なので、例えば開発しているプロダクトのクラスライブラリに対して、それを呼び出して使う実験用コードだけパパッと書く、という使い方もできます。パラメータを変えたい場合も、C#のコードを直接書き換えて実行するという手が使えます。大量のコンボボックスやラジオボタンが付いたテストGUIアプリを作るより、だいぶ楽だと思います。

(.NET 11はRCになりましたがまだGAではないので注意)

C#使いにお勧めです

私はもう、開発・管理用ツールはだいたいFile-based Appsで書いていて、PowerShellなどはほとんど使っていません。

その場でコードを変えて実行する使い方も、ネイティブexeにして.NETがない環境へ持っていく使い方もできます。さらに、共通処理を別ファイルやプロジェクトに分けて使えるようになり、だいぶ便利になりました。

C#が得意な方は、使ってみると良いと思います!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?