mono gtk# - hello world部署到windows

问题描述 投票:6回答:2

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

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

有什么建议? BR

windows mono gtk#
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();
    }

-1
投票

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

希望这有用。

戴夫

© www.soinside.com 2019 - 2024. All rights reserved.