すべてのタイプのC#Windowsフォームアプリケーションを実行するために必要なすべてのMono依存関係は何ですか?

すべてのタイプのC#Windowsフォームアプリケーションを実行するために必要なすべてのMono依存関係は何ですか?

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

おすすめ記事