在 Ubuntu Linux 16.04 实例上,1 .sudo apt-get install mono-runtime
和 2.之间有什么区别?sudo apt-get purge --remove mono-complete
sudo apt-get install mono-complete
今天早些时候有人告诉我,mono-runtime 和 mono-complete 之间的区别可能与 MySQL 插入是否成功发生而有利于 mono-complete 相关。
另一个假设是,mono-runtime 和 mono-complete 之间的差异可能与 System.Windows.Forms.dll 的 Mono 实现有关,涉及到响应启动 MySQL 数据库操作操作(即 DML)的按钮单击或按下。
我以前用过strace。所以我可以根据要求发布 strace 输出的片段。
在某些方面,sudo apt-get install mono-complete 意味着安装 Mono Rumtime 环境。但这不是我在这里的意思。
答案1
mono-complete
的描述是
Mono 是一个用于运行和开发基于 ECMA/ISO 标准的应用程序的平台。 Mono 是 Xamarin 领导的开源项目。 Mono提供了完整的CLR(公共语言运行时),包括编译器和运行时,可以生成和执行CIL(公共中间语言)字节码(又名程序集)和类库。
这是一个元包,包含 Mono 运行时、开发工具和所有库。
如果您想要运行 Mono 或 Microsoft .NET 软件,而您不是从 Debian 软件包安装,请安装此软件包。
mono-complete
拉入mono-runtime
所有可用的 Mono 库,包括提供数据库支持的任何 Mono 库(大概包括 MySQL 支持)。因此,您希望使用数据库的 .NET 软件能够与mono-complete
.
mono-runtime
仅包含 .NET VM 以及 JIT 和 AOT 代码生成器。如果您只安装了该软件,则没有多少 .NET 代码可以运行,并且使用数据库的 .NET 软件当然也不能运行。
答案2
这是对上面 Stephen Kitt 针对 Ubuntu Linux 16.04 的好答案的补充:
monodis -- assemblyref ./Target.exe (C#)
sudo apt install apt 文件
apt 文件更新
对于步骤 1 中列出的每个程序集或 DLL:
例如,apt-file 搜索 MySQL.Data