我有一个非常简单的Hello World示例,我使用Mono和gtk#在linux主机上编写。它只是显示带按钮的窗口。现在我试图在Windows上运行二进制文件但失败了。我使用单声道主页上的独立安装程序安装了gtk#。当我启动应用程序时,它会因以下原因而失效:
System.DllNotFoundException未处理:无法加载DLL 'libglib-2.0-0.dll':找不到指定的模块。 (HRESULT异常:0x8007007E)Source = glib-sharp
有什么建议吗? BR
答案 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