【问题标题】:CLR20r3 DllNotFoundException in Mono project; How to check what dependencies I need?Mono 项目中的 CLR20r3 DllNotFoundException;如何检查我需要哪些依赖项?
【发布时间】:2012-04-29 00:59:43
【问题描述】:

我用 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,我该怎么做才能让程序在我和其他人的计算机上运行?

【问题讨论】:

    标签: c# .net mono monodevelop gtk#


    【解决方案1】:

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

    【讨论】:

    • 你不应该需要那个 - GTK# for .NET 包括 GTK+ 运行时。但是由于 GTK# 查找本地 GTK+ 库的方式,如果其他应用程序(例如 GIMP、Inkscape)已将 GTK+ 安装到系统 PATH 中,事情可能会变得一团糟。
    • @mhutch 实际上我只是尝试在我学校的计算机上安装 GTK# for .NET 并且程序运行良好,所以我猜是因为我安装了 GIMP 和 Inkscape,这搞砸了我的 GTK+ 库。
    猜你喜欢
    • 2016-09-28
    • 2022-08-21
    • 2018-09-20
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    相关资源
    最近更新 更多