【问题标题】:How can I run the exe file created by Xamarin Studio in Debug directory on OSX?如何在 OSX 的 Debug 目录中运行 Xamarin Studio 创建的 exe 文件?
【发布时间】:2015-09-13 06:31:07
【问题描述】:

我用 C# 学习 Xamarin Studio 有一段时间了。我很困惑,因为我无法通过命令“mono test.ext”运行 Debug 目录中的 exe 文件。这是下面的错误消息:

System.TypeInitializationException: An exception was thrown by the
type initializer for Gtk.Container ---> System.DllNotFoundException:
gtksharpglue-2
at (wrapper managed-to-native) 
Gtk.Container:gtksharp_gtk_container_get_focus_child_offset ()
at Gtk.Container..cctor () [0x00000] in <filename unknown>:0 
--- End of inner exception stack trace ---
at Gtk.Bin..ctor (IntPtr raw) [0x00000] in <filename unknown>:0 
at Gtk.Window..ctor (WindowType type) [0x00000] in <filename unknown>:0 
at MainWindow..ctor () [0x00000] in <filename unknown>:0 
at BuildBoxTool.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Gtk.Container ---> System.DllNotFoundException: gtksharpglue-2
at (wrapper managed-to-native) Gtk.Container:gtksharp_gtk_container_get_focus_child_offset ()
at Gtk.Container..cctor () [0x00000] in <filename unknown>:0 
--- End of inner exception stack trace ---
at Gtk.Bin..ctor (IntPtr raw) [0x00000] in <filename unknown>:0 
at Gtk.Window..ctor (WindowType type) [0x00000] in <filename unknown>:0 
at MainWindow..ctor () [0x00000] in <filename unknown>:0 
at BuildBoxTool.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 

我应该怎么做才能解决它?谢谢~

【问题讨论】:

    标签: c# macos xamarin mono


    【解决方案1】:

    System.TypeInitializationException:异常被抛出 Gtk.Container 的类型初始化器 ---> System.DllNotFoundException: gtksharpglue-2

    默认情况下,Mono lib 目录不会添加到任何全局 dyld 路径中,有关详细信息,请查看 dyld 的手册页:

    男神

    ~~~
           DYLD_FALLBACK_LIBRARY_PATH
                  This is a colon  separated  list  of  directories  that  contain
                  libraries.  It is used as the default location for libraries not
                  found  in  their  install  path.   By  default,  it  is  set  to
                  $(HOME)/lib:/usr/local/lib:/lib:/usr/lib.
    ~~~
    

    所以要运行基于 GTK# 的“test.exe”:

    export DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib:/usr/local/lib:/usr/lib"
    mono test.exe
    

    【讨论】:

    • 非常感谢。你的意思是我应该使用命令运行应用程序:“DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib:/usr/local/lib:/usr/lib" mono test.exe"。它不起作用。
    • 将环境变量 DYLD_FALLBACK_LIBRARY_PATH 设置为 Mono lib 安装的位置,假设您没有在 OS-X 上运行并行 Mono 安装,即“/Library/Frameworks/Mono.framework/Versions/ Current/lib" 然后是 'mono yourexenamehere.exe"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2018-12-31
    • 2014-12-29
    • 2018-12-17
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    相关资源
    最近更新 更多