Ubuntu Linux 16.04でC#Windows Formsアプリケーションを実行するには、mono-runtimeおよびlibmono-system-windows-forms4.0-cilに加えて他のどのMono依存関係が必要ですか?
私たちの質問に対する答えは、WindowsフォームアプリケーションのC#ソースコードによって異なりますか?たとえば、hellboy81は2月10日01:46にgitter im monoに書きました。
Ubuntu 64ビット15.10(Unity)では、MonoのWinForms TreeViewコントロールに問題があります。項目は選択できず、選択項目は表示されません。
この問題を解決するためのパッケージアップデートまたは新しいパッケージはありますか?
私は以下を使って別のMono依存関係であるGTK#2.0を見つけたと思います。
strace mono ./Simple.exe
次の行を追加すると:
using GTK;
そしてSimple.cs
コンパイル:
mcs -r:System.Windows.Forms.dll -r:System.Drawing.dll -pkg:gtk-sharp-2.0 Simple.cs -out:Simple.exe
コンパイラの出力は次のとおりです。
Package gtk-sharp-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk-sharp-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk-sharp-2.0' found.
gtk-sharp-2.0がSystem.Windows.Formsに必須の依存関係であること、および他の「Mono」依存関係があるかどうかを教えてください。
私たちの設計者は、libgtk2.0-cil-devをMono依存関係の欠落例と見なしたくありません。代わりに、彼は単一のランタイムとlibmono-system-windows-forms4.0-cilに加えて、リストボックス、コンボボックス、編集ボックス、ボタンなどに必要な依存関係が何であるかを知りたいと思います。リストボックス、コンボボックス、編集ボックス、ボタンなど...追加のMono依存関係が必要ですか?
答え1
ここでの問題は、他のソースコードと同様に、Monoアプリケーションがパッケージ管理システムの制御を受けていないことです。したがって、どのパッケージをインストールする必要があるかを自分で特定する必要があります。何も教えてくれません。
いくつかのオプションがありますが、その最も簡単な方法は開発者のドキュメントを読むことです。
失敗した場合(すでに起動したように)実行して、strace
何が欠けているかを確認できます。次の問題は、ファイルがどのパッケージに属しているかを確認することです。 Ubuntuでは、apt-file
次のように使用できます。
インストールして設定します。
$ sudo apt-get install apt-file
$ apt-file update
次に、次を含むパッケージを見つけます。
$ apt-file search gtk-sharp-2.0.pc
libgtk2.0-cil-dev
このファイルをインストールする必要があることを知らせます。
その後、必要に応じてMonoアプリケーションを再実行すると、失われたファイルを見つけるのに役立ちstrace
ます。apt-file