7

我有一个非常简单的 Hello World 示例,我使用 Mono 和 gtk# 在 linux 主机上编写。它只是显示一个带有按钮的窗口。现在我试图让二进制文件在 Windows 上运行但失败了。我使用单声道主页上的独立安装程序安装了 gtk#。当我启动应用程序时,由于以下原因而失败:

System.DllNotFoundException 未处理:无法加载 DLL 'libglib-2.0-0.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)来源=glib-sharp

有什么建议么?BR

4

2 回答 2

1

您需要通过 mono.exe 运行您的应用程序,或者只需将 mono.exe 位置添加到 PATH 环境变量值。您可以像这样在运行时执行此操作:

    [STAThread]
    public static void Main(string[] args)
    {
        var dllDirectory = @"C:\Program Files (x86)\Mono\bin";
        Environment.SetEnvironmentVariable("PATH", Environment.GetEnvironmentVariable("PATH") + ";" + dllDirectory);
        Run();
    }

    private static void Run()
    {
        Gtk.Application.Init();
        Forms.Init();

        var app = new App();
        var window = new FormsWindow();
        window.LoadApplication(app);
        window.SetApplicationTitle("Game of Life");
        window.Show();

        Gtk.Application.Run();
    }
于 2018-09-11T11:50:35.830 回答
-2

您必须在 Windows 中使用regsvr32 libglib-2.0-0.dll命令提示符注册 DLL 'libglib-2.0-0.dll'。另一种方法是将所有依赖项打包到可执行文件中。

希望这会有所帮助。

-戴夫

于 2013-06-29T05:20:39.047 回答