このページの本文へ

前へ 1 2 次へ

Apple Geeks 第40回

.NET/MonoアプリをOS Xで動かす

2011年05月24日 13時00分更新

文● 海上忍

  • この記事をはてなブックマークに追加
  • 本文印刷

「Mono on OS X」を試す

併せてMonoDevelopmentを導入するなら

 Mono本体とは直接関係ないが、統合開発環境の「MonoDevelop」を合わせてインストールしたいと考える向きも存在するはず。このツールには、日本語フォントの設定が存在しないという落とし穴があるため、本体(MonoDevelop.app)のインストール後に必ず以下のコマンドラインを実行しておくこと。これで、文字化けの問題は解消できるはずだ。


$ echo '"Lucida Grande" = "Hiragino Kaku Gothic Pro"' > pango.aliases
$ sudo cp pango.aliases /Library/Frameworks/Mono.framework/Versions/Current/etc/pango/

「MonoDevelop」を日本語環境で使うには、設定ファイルの追加が必要なので注意

手始めに「MonoCalendar」をインストール

 OS Xに導入したMono環境は、.NET Frameworkベースのソフトであればすべて実行できるわけではない。Windowsの標準実行形式バイナリー(PE)のうち、Mono/.NET Framework向けにビルドされたものでなければならないうえ、複数ファイルをコピーするタイプはディレクトリー構造がOSに依存するため除外される。つまり、Mono/.NET Framework向けにビルドされ、インストーラーによる導入処理を伴わない「.exe」ファイルでなければならない。

 Mono/.NET Framework向けにビルドされたバイナリーかどうかは、Terminalからfileコマンドを実行して「Mono/.Net assembly」と表示されるかどうかで分かる。この方法だけでは、依存する.NET Frameworkのバージョンまで調べることはできないが、簡単なチェックには使えるだろう。


$ file MonoCalendar/MonoCalendar.exe
MonoCalendar/MonoCalendar.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit Mono/.Net assembly

 テストには、.NET Framework 1.0向けに記述された「MonoCalendar」を使用した。起動自体は簡単で、「mono」コマンドの引数に「.exe」ファイルを与えるだけだ。


$ mono MonoCalendar.exe

 なお、初回起動時には文字化けが発生するはず。これは適切なフォント設定がないにもかかわらず日本語ロケールが指定されているためで、初期設定ファイル(~/.config/MonoCalendar/settings.xml)の2行目にある「ja_JP」を「en-US」に修正すれば、英語で表示されるようになる。

 また標準状態では、MonoCalendarウィンドウのタイトルバー部分がOS Xのメニューバーに隠れて起動してしまい、ウィンドウを移動できない。初期設定ファイルにある以下の設定の数値を、「0」から任意の数値(「100」程度)に書き換えると隠れることがなくなる。


<Top type="System.Int32">0</Top>

OS Xで「MonoCalendar」を起動したところ

 ところで、ソフトの互換性だが……ソースコードにまったく手を加えず(Windows向けに)ビルドされたものは、OS Xでそのまま実行できることは稀だと考えたほうがいい。実際、Vectorなどのサイトで公開されているWindows/.NET Frameworkソフトをいくつか試したが、起動はできても何かキーを押した途端に異常終了するなど、実用からはほど遠いレベルだった。

 ペイントツール「Paint.NET」の派生プロジェクト「Pinta」のように、マルチプラットフォーム指向のアプリケーション開発に使うものだということだろう。

.NET Frameworkベースのペイントソフト「Paint.NET」をマルチプラットフォーム化した「Pinta」。バンドル内部を確認すれば分かるが、「.exe」や「.dll」が多数格納されている


■関連サイト

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中