C# Mono项目中的CLR20r3 DllNotFoundException;如何检查我需要的依赖项?

C# Mono项目中的CLR20r3 DllNotFoundException;如何检查我需要的依赖项?,c#,.net,mono,monodevelop,gtk#,C#,.net,Mono,Monodevelop,Gtk#,我用MonoDevleop和GTK写了一个程序。通过MonoDevelop运行该程序不会产生任何问题,但是如果我尝试在MD之外运行该程序(通过打包Windows版本x86的二进制文件),我会得到以下结果: Problem Event Name: CLR20r3 Problem Signature 01: areatest.exe Problem Signature 02: 1.0.4500.36382 Problem Signature 03: 4f9b440c Problem Si

我用MonoDevleop和GTK写了一个程序。通过MonoDevelop运行该程序不会产生任何问题,但是如果我尝试在MD之外运行该程序(通过打包Windows版本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安装程序)并重新安装,但我在了解情况方面没有取得任何进展。我的解决方案中引用了Glib sharp。我尝试在Visual C#2010中打开解决方案,但得到了两个警告:

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,只需安装.NET4,但当我尝试正常运行它时,它会给出上面列出的崩溃报告。我发现让我的程序运行的唯一方法是调用

mono AreaTest.exe

在命令提示中。如果在Windows上使用.NET 4,而在Mac/Linux上使用Mono,我该如何让程序在我和其他人的计算机上运行?

解决了这个问题:原来我必须安装才能在MonoDevelop之外运行程序。这也让我在Visual C#2010中打开了该项目,几乎没有错误。

解决了这个问题:原来我必须安装,以便在MonoDevelop之外运行该程序。这也使我能够在Visual C#2010中打开该项目,几乎没有错误。

您不需要它-GTK#for.NET包含GTK+运行时。但由于GTK查找本机GTK+库的方式,如果其他应用程序(如GIMP、Inkscape)将GTK+安装到系统路径中,事情可能会变得一团糟。@mhutch我实际上刚刚尝试在学校的计算机上安装GTK#for.NET,程序运行良好,因此我猜测是因为我安装了GIMP和Inkscape,这搞砸了我的GTK+库。你不应该需要它-GTK#for.NET包含GTK+运行时。但由于GTK查找本机GTK+库的方式,如果其他应用程序(如GIMP、Inkscape)将GTK+安装到系统路径中,事情可能会变得一团糟。@mhutch我实际上刚刚尝试在学校的计算机上安装GTK#for.NET,程序运行良好,因此我猜测是因为我安装了GIMP和Inkscape,这搞砸了我的GTK+库。