LinuxMint 20 でMono Developを使ってみる備忘録

LinuxMint20でMonoDevelop

たしかに簡単なGUIアプリケーションを開発するのにWindowsのC#(Visual Studio)は使いやすいと思います。LinuxにもVisualStudioに似たC#でのGUI開発環境ができないものかとググってたところMono Developというのを見つけました。ずいぶん以前よりMonoはLinux上で使えるC#環境だというのは聞いていましたが今回始めて触ってみることにしました。

■インストール

インストールしてみたLinuxは、LinuxMint 20 cinnamonです。

まず、Mono関係をインストールします。 デスクトップのメニューより[システム管理]->[ソフトウェアの管理]を選択して [ソフトウェアの管理]ウィンドウを開きます。で、検索窓にmonoと入力してMono-develを探してインストールします。(GTK関係のライブラリは前にインストールしていたので何が必須かはちょっとわかりません)

次に、MonoDevelopのダウントードページを参考にして以下のコマンドを実行してインストールします。執筆時点では、LinuxMint20のベースであるUbuntu20.04の記載がないのでUbuntu18.04のを使ってみます。

hoge $ sudo apt install apt-transport-https dirmngr
hoge $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
hoge $ echo "deb https://download.mono-project.com/repo/ubuntu vs-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-vs.list
hoge $ sudo apt update
hoge $ sudo apt-get install monodevelop

これでMonoDevelopが使えるようになりました。

■ Hello World

まずは、Hello Worlldしてみましよう。

デスクトップのメニューより[プログラミング]->[MonoDevelop]でVisualStudioっぽいウィンドウが開きます。(アップした画像の色が薄いかもです。画像をクリックすると大きく表示します。)

LinuxMint20でMonoDevelop

ソリューションの下の新規作成をクリックしてください。プロジェクトの種類の選択画面が表示されます。でその他の下の.NETからGTK# 2.0プロジェクトを選択して[次へ]ボタンを押してください。

LinuxMint20でMonoDevelop

新しいGtk# 2.0プロジェクトの構成の設定画面になりますのでプロジェクト名を決めてディレクトリを選択してください。

LinuxMint20でMonoDevelop

Program.csのソースコードが表示された状態でエディタが開きます。

LinuxMint20でMonoDevelop

左側のソリューションツリーからMainWindow.csを選択してください。

LinuxMint20でMonoDevelop

で、エディタの左下に[ソース][デザイナー]というタブがあるので[デザイナー]をクリックしてください。VisualStudioのようなデザイン画面が表示されます。

LinuxMint20でMonoDevelop

VisualStudiioだとこの状態でLabelやButtonを配置していけますがGTK系ですのでframeにコンテナをかぶせてやる必要があります。VisualStudioと同じ自由に配置できるコンテナは、Fixedです。右側のツールボックスよりFixedをframeの上にドラッグしてください。その後はVisulaStudioと同じようにウィジットを配置していけます。

ここでは、Labelを中央に配置して”Hello World”にしてButtonを右下に配置して”Exit”にしてみました。Buttonの縦横サイズはプロパティのCommon Widget PropertiesWidthRequestHeightRequestで設定します。問題はFontの設定です。まだよくわかってないのですが今の所デザーナー画面に反映させられる設定方法は見つけられていません。ソリューションディレクトリの下のgtk-guiディレクトリの中のMainWindow.csに各ウィジットをnewしていますのでそこで最上部にusing Pango;してlabel1をnewした記述の後ろに

label1.ModifyFont(FontDescription.FromString("Courier 16"));

でrun後にfontが変わることは確認しました。ここでは触らずにHello World をしていきます。

LinuxMint20でMonoDevelop

次にExitボタンで終了させるためにButtonのシグナルを設定します。右側のプロパティパネルの下の[プロパティ]/[シグナル]タブから[シグナル]を選択してButton SignalsからClickedの横のここをクリックして…をダブルクリックします。そうするとOnExitButtonClickedが現れます。そおの後にClicked自体をダブルクリックするとVisualStudioと同じ感じでClickイベントが追記されたソースが表示されますのでその中に

 Application.Quit();

と入力してSaveしてください。

メインメニューから[実行]->[デバッグの開始]で実行されます。

LinuxMint20でMonoDevelop

リリースするときはメインメニューの左下のDebugをReleaseに変えてメインメニューの[ビルド]->[すべてビルド]でソリューションディレクトリの下にbin/Releaseディレクトリができてその中にビルドしたxxxx.exeファイルがあるのでNemo(GUIファイルマネージャー)の場合はそのexeファイルを右クリックで[Mono Rutimeで開く]で実行できます。またターミナルからは

hoge ... /bin/Release $ mono xxxx.exe

で実行することが可能です。

■gpio.sharpを参照

[2021.06.20追記]

久々にMonoDevelopを使おうとして実行をかけたらErrorがでました。実行環境は以下の通りです。

  • Linux MInt20.1
  • Mono Develop version7.8.4
  • Mono 6.12.0.122

エラー内容は以下の通りです。

The type ‘Application’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘gio-sharp‘, Version 3.0.0.0, Culture=neutral, PublicKey Token=xxxxxxxx….

MonoDevelop100

gio-sharpを参照に追加しろということのようです。以前に設定を変えたつもりはなかったのでupdate時になにか変わってしまったのかもしれません。でgio-sharpを参照に追加します。

MonoDevelopウィンドウの左側のソリューション下の[参照]を右クリックして[参照の編集]を選択。

MonoDevelop101

参照の編集ウィンドウが開くのでgio-sharpのところにチェックを入れて[OK]

MonoDevelop102

再度、実行してみてErrorが出ず実行できることが確認できました。

MonoDevelop103
中川電子技研

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL