mono gtk# - hello world部署到windows

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mono gtk# - hello world部署到windows相关的知识,希望对你有一定的参考价值。

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

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

有什么建议? BR

答案

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

    [STAThread]
    public static void Main(string[] args)
    {
        var dllDirectory = @"C:Program Files (x86)Monoin";
        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();
    }
另一答案

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

希望这有用。

戴夫

以上是关于mono gtk# - hello world部署到windows的主要内容,如果未能解决你的问题,请参考以下文章

从 https://www.gtk.org/docs/getting-started/hello-world/ 获取 gtk 示例的错误编译示例

如何使用Visual Studio 2017构建Gtk#/ Mono应用程序

Nancyfx跨平台开发总结Hello World

Mono Gtk#:ButtonPressEvent不起作用

ZooKeeper 安装部署及hello world

部署 spring-cloud-kubernetes kubernetes-hello-world-example 失败