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

时间:2017-08-30 01:39:49

标签: c# gtk#

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

我不希望目标安装GTK或任何其他依赖项。

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

我的问题:

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

    INNER EXCEPTION:   System.DllNitFoundException:libgobject-2.0-0.dll。 消息: 类型   < GLib.GType'的初始化程序抛出异常。

    1. 假设我可以解决问题(1),是否可以进一步将依赖项打包到构建的可执行文件中,以便exe不依赖于dll文件的分离本地副本?
    2. 非常感谢您提供的任何协助来回答这个问题。

1 个答案:

答案 0 :(得分:0)

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

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