mono gtk# - hello world部署到windows

时间:2013-05-07 10:59:22

标签: windows mono gtk#

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

  

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

有什么建议吗? BR

2 个答案:

答案 0 :(得分: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 :(得分:-1)

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

希望这有用。

-Dave