2017-08-30 28 views
1

我已經創建了一個我打算在LINUX/Windows上部署的GTK#應用程序。如何部署GTK#應用程序並提供依賴關係。我得到libgobject-2.0-0.dll異常

我不想要求目標安裝GTK或任何其他依賴項。有鑑於此,在開發了這個項目之後,我指示MonoDevelop使用所有引用的「本地拷貝」。這將關聯的DLL複製到構建文件夾。

我的問題:

  1. 由於依賴關係設置爲本地我收到運行System.TypeInitializationExceptionGtk.Application.Init()。投訴如下。如果我刪除引用的「本地副本」設置,則不會收到運行時異常,但我將無法將該應用程序部署到未安裝GTK3#的系統上。有任何想法嗎?

內部異常: System.DllNitFoundException:libgobject-2.0-0.dll。 消息:「GLib.GType」類型 初始值設定項引發異常。

  • 假設我可以解決問題(1),是有可能更進一步,打包的依賴關係進建可執行使得EXE不依賴於分離的本地副本該dll文件?
  • 非常感謝您提供的任何幫助來回答這個問題。

    回答

    0

    問題是,您不僅需要Gtk#的C#DLL,還需要gtk + 2(Gtk#所基於的C庫)的低級DLL。

    一種策略是將DLL與您的程序一起部署,但請記住您需要大量的DLL。另一個我能想到的是在mono-project.com中使用安裝程序,並從您的應用程序的安裝程序啓動它。