2
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?

.NET MAUI on Linux のサンプルを動かしてみる

Last updated at Posted at 2025-11-30

.NET MAUI Advent Calendar 2025 1日目の記事です。

TL;DR

  • Docker を利用してサンプルアプリケーションを動かすことが容易に
  • .NET MAUI 界隈では、非公式で Linux サポートを進めるコミュニティー (MauiGtk Community) が設立し、以前よりも活動が活発に
  • 現在は既存の .NET MAUI プロジェクトを Linux 対応させることはできないが、これができるようにコミュニティーの活動が進行中

.NET MAUI の Linux 対応状況

現時点ではサンプルアプリケーションは動かせる状態です。しかし、既存の .NET MAUI アプリケーションに Linux 対応を追加できる段階までは進んでいません。

詳細については、1年前の Advent Calendar で書いたので、そちらを参考にしてください。(現在の状況とは多少異なる点もありますが、大まかな情報は把握できると思います)

試してみよう

今回は歴史や理論の話は少なめにして、実際に使ってみましょう。

前提

  • .NET 8.0 SDK
    • 最近 .NET 10 が出ましたが、本プロジェクトはまだ対応ができていません
  • Docker (または Podman)
    • docker の場合は、おそらく sudo で実行する必要があります
    • 私の実機/WSL 環境では Docker で GUI がなかなか動かなかったため、Podman を利用しています
  • コマンドは Debian/Ubuntu 系を想定
    • (他のディストリビューションでもコマンドを変えたら動くはずです)

1. Image を Pull

(Docker ファイルはこちらのリポジトリを利用しています: https://github.com/MauiGtk/maui-docker)

docker pull ghcr.io/mauigtk/maui-docker:main
# podman pull ghcr.io/mauigtk/maui-docker:main

2. Docker run で動かす

xhost + # ディスプレイへのアクセス権限を追加
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -t ghcr.io/mauigtk/maui-docker:main dotnet run --framework net8.0-gtk
# podman run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -t ghcr.io/mauigtk/maui-docker:main dotnet run --framework net8.0-gtk
xhost - # ディスプレイへのアクセス権限を削除

image.png

できました!! が、最初は画面が小さく表示されるので、下に引き伸ばします。

image.png

これで、現在実装されている機能を見ることができます。

現時点では "Blazor" を押すとクラッシュするので押さないように…。

備考

その他の利用方法は maui-docker をご覧ください。

感想

このサンプルアプリケーションについては、2-3年前からあったと思います。ただ、起動のための手順が非常に複雑であり1、ドキュメントもほとんど存在しなかったので、多くの人は動かせない状況でした。

そこで、昨年後半頃から Thomas 氏 (MauiGtk Community の事実上のリーダー) や私でこのプロジェクトを再興しようと動きはじめました。それによって Thomas 氏 (+ 私) が開発したのが、この maui-docker であり、これによってサンプルアプリケーションの起動が簡単になりました。

これを動かす環境構築に非常に時間がかかった過去を振り返ると、ここまで簡単にできる方法が用意された (用意できた) ことに感動しています。

今後も、.NET MAUI で作られたアプリケーションを Linux 上で動かすことを目標に活動を進めていきたいと考えています。

追記

.NET MAUI のライバル (?) である、Avalonia が、.NET MAUI で Avalonia バックエンドを利用して Linux、Wasm 対応するプロジェクトを発表しました。急展開…!! 面白くなりそうですね。

  1. とくに Workload のインストール部分

2
1
1

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
2
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?