如何部署 GTK# 应用程序并提供依赖项。我得到 libgobject-2.0-0.dll 异常

How to deploy GTK# applications and supply dependencies. I get libgobject-2.0-0.dll exception

我创建了一个 GTK# 应用程序,我打算将其部署到 LINUX/Windows。

我不想要求目标安装 GTK 或任何其他依赖项。

考虑到这一点,在开发项目后,我指示 MonoDevelop 使用其所有引用的 'local copy'。这会将关联的 DLL 复制到构建文件夹。

我的问题:

  1. 由于将依赖项设置为本地,我在 Gtk.Application.Init() 收到运行时 System.TypeInitializationException。投诉如下。如果我删除引用的 'local copy' 设置,我不会收到运行时异常,但我将无法在没有安装 GTK3# 的系统上部署应用程序。有什么想法吗?

INNER EXCEPTION: System.DllNitFoundException: libgobject-2.0-0.dll. MESSAGE: The type initializer for 'GLib.GType' threw an exception.

  1. 假设我可以解决问题 (1),是否可以进一步将依赖项打包到构建的可执行文件中,以便 exe 不依赖于 dll 文件的单独本地副本?

非常感谢您为回答此问题提供的任何帮助。

问题是您不仅需要 Gtk# 的 C# DLL,还需要 gtk+2(Gtk# 所基于的 C 库)的低级 DLL。

一种策略是将该 DLL 与您的程序一起部署,但请记住,您将需要很多 DLL。我能想到的另一种方法是在 mono-project.com 中使用安装程序,然后从应用程序的安装程序中启动它。