Armadilloフォーラム

atde7-i386上でGTK#で作成したexeファイルを実行したい

sk_sakura

2018年8月30日 10時51分

いつもお世話になっております。コバヤシと申します。
表題の内容について、ご質問させて下さい。

開発環境
Windows10 64bit
Visual Studio2017

対象の動作環境
atde7-i386 (debian9)

まず、Visual Studio2017上で、以下のアドレスの内容に従ってサンプルプログラムを作成し、Releaseを実行してGameOfLife.GTK.exe他関連ファイルを作成しました。

https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/platform/gtk?tab…

次に、GameOfLife.GTK.exeを実行するためには、Linux上ではMonoが必要とのことでしたので、
atde7-i386上で、以下のアドレスの内容に示す通り、Mono5.14.0 stableを手順通りインストールしました。

https://www.mono-project.com/download/stable/#download-lin-debian

その後で、Releaseを実行して作成したGameOfLife.GTK.exe他関連ファイルをReleaseフォルダごとatde7-i386のホームへコピーしました。

そして、端末上で、

atmark@atde7:~/Release$ mono GameOfLife.GTK.exe

と実行したところ、

Unhandled Exception:
System.DllNotFoundException: libglib-2.0-0.dll
at (wrapper managed-to-native) GLib.Marshaller.g_utf16_to_utf8(char*,intptr,intptr,intptr,intptr&)
at GLib.Marshaller.StringToPtrGStrdup (System.String str) [0x00034] in :0
at GLib.Global.set_ProgramName (System.String value) [0x00001] in :0
at Gtk.Application.SetPrgname () [0x0000d] in <35293b6aa2744433b0e2f41f34e699d5>:0
at Gtk.Application.Init () [0x00001] in <35293b6aa2744433b0e2f41f34e699d5>:0
at GameOfLife.GTK.MainClass.Main (System.String[] args) [0x00001] in <7466b517121d405aa53586a63e0c8386>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libglib-2.0-0.dll
at (wrapper managed-to-native) GLib.Marshaller.g_utf16_to_utf8(char*,intptr,intptr,intptr,intptr&)
at GLib.Marshaller.StringToPtrGStrdup (System.String str) [0x00034] in :0
at GLib.Global.set_ProgramName (System.String value) [0x00001] in :0
at Gtk.Application.SetPrgname () [0x0000d] in <35293b6aa2744433b0e2f41f34e699d5>:0
at Gtk.Application.Init () [0x00001] in <35293b6aa2744433b0e2f41f34e699d5>:0
at GameOfLife.GTK.MainClass.Main (System.String[] args) [0x00001] in <7466b517121d405aa53586a63e0c8386>:0

というエラーメッセージが表示されて実行できませんでした。

これを実行する方法についてアドバイスをいただきたく質問を投稿させていただきました。

自分なりに色々と調べてみたのですが、
debian側にgtk-sharpをインストールする必要がある?(基本的に何が必要か私自身が分かっていない)
そもそもdebian上でexeファイルを実行する方法が違う?(monoを用いない方法がある?)
DLLImportの内容を変更する必要がある?
と思いつく点から現在調べていますが、実力不足なこともあって解決できていません。

ご多忙と存じますが、お力をお貸しいただけるよう、何卒よろしくお願いします。

コメント