Mono:我的GTK应用程序可以在Windows-64位上执行吗?

Mono:我的GTK应用程序可以在Windows-64位上执行吗?,mono,gtk,monodevelop,gtk#,Mono,Gtk,Monodevelop,Gtk#,我已经用MonoDevelop,GTK#2作为GTK2项目在Linux 64位中创建了一个应用程序 我能够制作一个可执行文件,平台目标是“AnyCPU”(我已经删除了Posix引用和GetText()-支持),但我也尝试了“x64” 此可执行文件可在64位Linux上执行(终端:mono App.exe) 此可执行文件可在Windows 32位上执行(终端:mono App.exe) 此可执行文件无法在Windows 64位上运行(终端:mono App.exe) 导致错误: 未处理的异常:Sy

我已经用MonoDevelop,GTK#2作为GTK2项目在Linux 64位中创建了一个应用程序

我能够制作一个可执行文件,平台目标是“AnyCPU”(我已经删除了Posix引用和GetText()-支持),但我也尝试了“x64”

  • 此可执行文件可在64位Linux上执行(终端:mono App.exe)
  • 此可执行文件可在Windows 32位上执行(终端:mono App.exe)
  • 此可执行文件无法在Windows 64位上运行(终端:mono App.exe) 导致错误:
  • 未处理的异常:System.DllNotFoundException:libglib-2.0-0.dll

    我已在Windows 32位和Windows 64位两台计算机上安装了适用于Windows运行时环境的
    GTK+

    事实上,我在GTK/bin路径上找到了这个DLL
    libglib-2.0-0.DLL
    ,并且还将它复制到了我的可执行文件夹中,即使它是在path环境变量中设置的

    无论如何,我得到了相同的错误消息,但只有在Windows 64位

    我是否有机会使我的GTK应用程序运行Windows 64位


    Windows x64是否有不同的
    libglib-2.0-0.dll
    ,我如何获得它?

    当然可以在64位Windows上运行Gtk#2应用程序,但这需要一些工作。您似乎已经获得了必要的.Net程序集和所需的本机Win64 Gtk+DLL,但还需要一组额外的64位本机“粘合”DLL。在我的搜索中,我还没有找到一个好的预编译形式的源代码,但是可以从gtk sharp源代码构建它们。

    也许我应该提到,有一种方法可以获得我已经编译的Win64“glue”DLL的副本。它们包含在我们的“APSIM下一代”软件产品中,该产品免费提供,但需要注册。转到,然后选择“APSIM”作为产品,选择“下一代(Windows)”作为版本。这将允许您访问安装程序,并且安装的软件将包括您需要的DLL。我真的应该在我们的github网站上提供这些作为公共服务,但我还没有这样做。非常感谢您的回答!我几乎失去了所有的希望。我会检查这一点,并返回一个回复,并将您的回复设置为相应的解决方案。嗨,埃里克,安装了您的应用程序,但绝对没有找到类似“libglib-2.0-0.dll”的内容。你的确切意思是什么样的DLL?我正在寻找适用于Win64的GTK2 DLL,目前正在使用这些DLL(我的项目中的本地引用):
    System.dll
    System.Data.dll
    gdk sharp.dll
    glib sharp.dll
    gtk sharp.dll
    Mono.Data.Sqlite.dll
    原始错误消息是:
    未处理的异常:System.DllNotFoundException:libglib-2.0-0.dll
    安装程序应该创建一个名为C:\Program Files\APSIM2018.10.23.3165的文件夹(数字会因您获得的版本而异)。这将有一个Bin子文件夹,其中包含所有必要的dll(包括libglib-2.0-0.dll),以及一些您不需要的其他dll。在大多数情况下,您需要那些名称以“lib”开头的文件,以及那些文件名.Oh中某处带有“sharp”的文件,还有gtkdotnet.dll和Mono.Cairo.dll。Gtk支持总共约有40个DLL。