Windows上的单声道(和一般问题)

时间:2011-02-11 04:56:06

标签: c# windows linux mono

我在Linux上安装了MonoDevelop并编写了一个shell GTK +应用程序。当我编译并运行时,应用程序在Linux中正确显示。当我将.exe移动到Windows时,我得到一个“Windows Not Responding”崩溃,因此没有堆栈跟踪。然后我想我必须安装Mono For Windows,所以我做了,但没有运气 - 我仍然崩溃。

更一般地说,我很难想象这里发生了什么。请把我的错误解雇我:

  1. 启动Mono项目的人编写了自己的编译器(可能是从头开始)来编译C#代码。他们在查看.NET Framework
  2. 之后对此进行了建模
  3. 他们还为字节码的单声道实现编写了一个CLR。任何想要运行此代码的架构都需要Mono Runtime,因为只有Mono Runtime才能运行代码。
  4. 我说得对吗?为什么我的程序没有运行?提前谢谢。

5 个答案:

答案 0 :(得分:5)

有三件事对我很突出:

  1. GTK +。默认情况下,GTK不是Windows上的窗口或单声道的一部分。您必须单独安装。
  2. Shell应用程序。这意味着Windows世界中的一些特殊功能(一个应用程序作为(扩展)Windows桌面shell的一部分运行,而不是作为它自己的程序),听到这些不起作用,我也不会感到惊讶平台非常好,甚至根本没有。我认为你的意思是“控制台应用程序”,但为什么需要GTK +?
  3. 单声道。确保使用mono调用程序。仅仅因为安装了mono并不意味着你的程序将如何运行而不是微软自己的.Net实现。

答案 1 :(得分:1)

嘿,我自己对Mono只是模糊地熟悉,但我想 - 有一个分析工具可以显示可能的可移植性问题。如果你这样做,它会显示任何问题吗?

答案 2 :(得分:0)

你也很少检查。

单声道安装程序是否包含GTK#libraries。

如果是,请检查程序集是否在GAC中。 assemebiles名称是gtk-sharp.dll,gdk-sharp.dll

如果不是,请复制bin目录中引用的程序集。你可以在你的单声道开发项目中看到它。

答案 3 :(得分:0)

我认为你的意思是你写了一个GTK#应用程序。在这种情况下,要在Windows上运行它,您需要确保从Mono Downloads page

安装“GTK#for .NET”

答案 4 :(得分:0)

在Windows上,您可以捕获崩溃转储并查看导致崩溃的原因。例如,使用WinDbg执行此应用程序。

http://www.microsoft.com/whdc/devtools/debugging/default.mspx