在 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
帮助您找到丢失的文件。