2010-07-15 127 views
2

我在ubuntu上使用monodevelop创建了一个c#应用程序。它在ubuntu中运行良好。 我尝试在windows.But中运行该应用程序(在Ubuntu中运行后创建的firstgtk.exe文件),但它显示错误消息。我可以在Linux和Windows中如何进行移植?在linux和windows上运行.net(单声道)应用程序

的错误信息是:

当我点击firstgtk.exe文件,命令提示具有come.It是空白的。在同一时间微软消息(发送错误报告或不发送):

firstgtk遇到问题,需要关闭。

当我点击不发送按钮,命令提示符和消息框消失了。

+1

请包括实际的错误信息作为您的问题的一部分。 – anthony 2010-07-15 17:23:19

+0

向我们显示错误消息,我们可以帮助您更好。 除此之外,我猜测...你有没有在Windows环境中安装Mono?您可能必须在Windows下编译Windows版本,除非您使用的开发工具可以从Linux定位Windows。 – FrustratedWithFormsDesigner 2010-07-15 17:25:22

回答

1

如果您使用的是Gtk#,则您的应用程序可在Windows和Linux之间移植。我的猜测是,你没有在Windows上正确安装Gtk#(或根本就没有安装)。你可以从here下载。截至目前,最新版本是2.12.10

+0

谢谢,它正在工作。 我已经创建了另一个简单的java控制台project.While双击它的exe文件,相同类型的错误coming.Any我需要安装? – NikRED 2010-07-17 03:58:05

+0

我打算说“好猜安东尼”,但我看到问题已更新,以提供更多信息。所以,我会说“好的答案”。 :-) – Justin 2010-07-18 17:03:07

1

你的代码应该可以在Linux和Windows之间移植。唉, 二进制文件不是。 ...

编辑:正如评论者指出的,Mono确实会生成并使用PE可执行文件,但其他问题可能会限制可移植性。

+0

在Windows上编译Mono之前,他不需要在Windows上安装Mono吗? – FrustratedWithFormsDesigner 2010-07-15 17:36:14

+1

我不认为这是真的。单声道产生单声道运行时加载和执行的PE文件。我相信在两个平台上都可以使用相同的二进制。 – codekaizen 2010-07-15 17:36:42

+0

@codekaizen:是吗?凉。但在那种情况下,他仍然需要Windows上的Mono平台。他甚至不清楚他是否拥有这一点。 – FrustratedWithFormsDesigner 2010-07-15 17:45:01

3

单声道编译为CIL代码,可以完全移植到其他平台上的.NET或Mono。我可以在Mac上编译我的C#代码并在Linux或Windows下运行由.NET或Mono生成的EXE。

没有实际的错误信息,我们只能在这里猜出问题。也就是说,根据我的经验,在Linux/UNIX上用Mono编写的应用程序在Windows上创建错误的最常见原因是具有平台特定路径分隔符或区分大小写问题的路径名。 Windows文件系统不区分大小写,但它们在Linux/UNIX上。

另一种可能性是,您在一个平台上使用Mono,并试图在.NET上运行它。 Mono附带一些在Windows上不存在的.NET库。

其实,我猜最后的可能是GTK#是在单声道上生成GUI代码的常用方法。 GTK#依赖于存在的GTK + C库,这在Linux上非常常见,但在Windows上不太可能,除非它已被明确安装。

我们真的需要知道错误信息是什么。

+0

现在已添加更多信息,我可以看到我最后的猜测是正确的。安东尼在上面跳出了正确的答案。 GTK#必须安装。 – Justin 2010-07-18 17:06:57

相关问题