运行所有类型的 C# Windows 窗体应用程序所需的所有 Mono 依赖项有哪些?

运行所有类型的 C# Windows 窗体应用程序所需的所有 Mono 依赖项有哪些?

在 Ubuntu Linux 16.04 上运行 C# Windows 窗体应用程序除了 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帮助您找到丢失的文件。

相关内容