Introduction
会社でLinux上でGUIアプリケーションを使った簡単なアプリを作る話が出た。
担当は自分では無いが、LinuxのGUIは試してみたいので、実験。
Avalonia とかがあるが、アレは不安定だった…なので、今回は Xamarin の GTK を使ってみる。
How to?
Windowsで開発して、Linux上でBuild&Runが理想です。
下記Tutorialが教えてくれました。
が、Prismあたりの話を端折っているので、適宜行間は読みます。
今回のソースは下記になります。
1. インストール
まずは、Mono を入手してインストール。
公式ページから Download Mono 64-bit (no GTK#) と GTK# for .NET のインストーラを入手。
この時点 (2021/04/20) でバージョンは *6.12.0.107 、2.12.45
インストールは割愛 (特筆すべき事は何も無い)。
2. Xamarin Prism のプロジェクトを作成
AndroidとかiOSは不要なので、UWPと共有プロジェクトだけ残して削除。
3. .NET Frameworkの空のプロジェクトを追加
新しいプロジェクトから 空のプロジェクト (.NET Framework) を選択。
肝は .NET 4.7.2以上
このプロジェクトが GTK を扱います。
4. 出力の種類を変更
追加したプロジェクトのプロパティで、アプリケーションから 出力の種類 を Windows アプリケーションに変更
5. Xamarinの共有プロジェクトを参照に追加
最初に作った Xamarin Prism に含まれている奴です。
6. 参照ライブラリを追加
GTKのインストール先から下記を選択して追加。
- atk-sharp.dll
- gdk-sharp.dll
- glade-sharp.dll
- glib-sharp.dll
- gtk-dotnet.dll
- gtk-sharp.dll
インストールする GTK# for .NET によるが、基本は C:\Program Files (x86)\GtkSharp\2.12\lib\gtk-sharp-2.0 に入っている。
7. Nugetで下記ライブラリをインストール
- Prism.Unity.Forms
- Xamarin.Forms.Platform.GTK
8. Program.cs を追加
下記のコードを追加。
予断ですが、名前空間に Gtk と付けたばかりに、global 等という余計な修飾子を付ける羽目になりました。
1 | using System; |
9. Build & Run
はい!!
無事に動きません!!
GTKのライブラリが足りないので、実行ディレクトリにコピーしておきます。
面倒なので C:\Program Files (x86)\GtkSharp\2.12\bin の中身を全部コピー。
はい、まだ動きません!!
Nugetで Xamarin.Essentials.Interfaces をインストールします。
よくわからないが、Darkテーマが問題?
そして、ようやく動きました。
Source Code
https://github.com/takuya-takeuchi/Demo/tree/master/Xamarin/Xamarin.Gtk1