我在 Linux 上安装了 MonoDevelop 并编写了一个 shell GTK+ 应用程序。当我编译并运行该应用程序时,该应用程序在 Linux 中正确显示。当我将 .exe 移至 Windows 时,出现“Windows 无响应”崩溃,因此没有堆栈跟踪。然后我想我必须为 Windows 安装 Mono,所以我这样做了,但运气不佳 - 我仍然崩溃。
更一般地说,我很难想象这里发生了什么。请纠正我的任何错误:
- 启动 Mono 项目的人编写了自己的编译器(可能是从头开始)来编译 C# 代码。他们在查看 .NET Framework 之后对此进行了建模
- 他们还为字节码的单声道实现编写了一个 CLR。任何想要运行此代码的架构都需要 Mono Runtime,因为只有 Mono Runtime 才能运行代码。
我说的对吗?为什么我的程序不运行?提前致谢。
最佳答案
三件事对我来说很突出:
- GTK+。默认情况下,GTK 不是 Windows 或 Windows 上的单声道的一部分。您必须单独安装它。
- 外壳应用程序。这意味着 windows 世界中的一些特别的东西(作为(扩展)windows 桌面外壳的一部分运行的应用程序,而不是作为它自己的程序),听到这些不能交叉工作我一点也不会感到惊讶平台非常好,甚至根本没有。我假设您指的是“控制台应用程序”,但为什么需要 GTK+?
- 单声道。确保使用单声道调用程序。仅仅因为安装了 mono 并不意味着你的程序将如何运行,而不是 Microsoft 自己的 .Net 实现。
关于c# - Windows 上的单声道(和一般问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4965744/