1

我用 MonoDevleop 和 GTK# 编写了一个程序。通过 MonoDevelop 运行程序不会产生任何问题,但是如果我尝试在 MD 之外运行程序(通过打包 Windows Release x86 的二进制文件),我会得到:

Problem Event Name: CLR20r3
Problem Signature 01:   areatest.exe
Problem Signature 02:   1.0.4500.36382
Problem Signature 03:   4f9b440c
Problem Signature 04:   glib-sharp
Problem Signature 05:   2.12.0.0
Problem Signature 06:   4a1c33d2
Problem Signature 07:   2b8
Problem Signature 08:   0
Problem Signature 09:   System.DllNotFoundException
OS Version: 6.1.7601.2.1.0.256.1
Locale ID:  1033
Additional Information 1:   0bff
Additional Information 2:   0bff8d176610735333c3986b545525d3
Additional Information 3:   b571
Additional Information 4:   b571ae7bc62750b34b3b738a0a557539

我用谷歌搜索了 CLR20r3,发现很少能处理它。我已经尝试卸载所有与 Mono 相关的东西(MonoDevelop、Gtk# for .NET,以及 Mono for Windows、Gtk# 和 XSP 安装程序)并重新安装它,但我在找出发生了什么方面的进展为 0。我的解决方案中引用了 Glib-sharp。我尝试在 Visual C# 2010 中打开解决方案并收到 2 个警告:

Warning 2 The referenced component 'Mono.CSharp' could not be found.
Warning 1 Could not resolve this reference. Could not locate the assembly "Mono.CSharp". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 

我引用了 Mono.CSharp 并没有摆脱警告。无论如何,我运行了该程序,并且在我的主程序中引发了异常:

class MainClass {
  public static void Main (string[] args)
  {
    Application.Init (); // here
    MainWindow win = new MainWindow ();
    win.Show ();
    Application.Run ();
  }
}

如果我发布程序,.exe 仍然有同样的问题。

我想做的是让程序在任何操作系统上运行。对于 Windows,我被告知我的用户不必安装 Mono,只需安装 .NET 4,但是当我尝试正常运行它时,它会给出上面列出的崩溃报告。我发现让我的程序运行的唯一方法是调用

mono AreaTest.exe

在命令提示符中。如果在 Windows 上,我可以做些什么来让程序通过 .NET 4 在我和其他人的计算机上运行,​​在 Mac/Linux 上通过 Mono 运行?

4

1 回答 1

1

想通了:原来我必须安装GTK+ 运行时才能在 MonoDevelop 之外运行程序。这也使我能够在 Visual C# 2010 中打开项目而几乎没有错误。

于 2012-04-29T12:46:11.840 回答