在Windows上进行Mono开发的最佳设置是什么?

在Windows上进行Mono开发的最佳设置是什么?

What's the best setup for Mono development on Windows?

我开始尝试与Mono一起玩,目前主要是为了娱乐。 我首先尝试使用Visual Studio插件将csproj转换为makefile,但似乎没有适用于Visual Studio 2005的版本。我还阅读了有关MonoDevelop IDE的信息,听起来不错。 不幸的是,没有预制Windows软件包。 我尝试遵循一些说明,通过结合其他半相关安装的依赖项来构建它。 它没有用,但这可能是因为我是一个面向Windows的人,几乎不能拼写" makefile"。

因此,我的问题是:在Windows上启动并运行一些基于Mono的开发的最低能耗方法是什么?


我建议获取VMWare Player并使用网站上提供的免费Mono开发平台映像。

下载单声道

这样做的建立时间将是最短的,并且它还使您可以使代码在.NET中运行,然后专注于移植问题,而无需花费太多时间来切换机器等。 VMWare Player工具可让您简单地拖放文件以进行复制。

我打算拿几个我的.NET应用程序,使它们符合Mono标准,这就是我不久要走的路。


一年后,对此的答案有了很大变化。现在,您可以在Windows上使用MonoDevelop,或者如果您对Visual Studio更为满意,则可以使用Visual Studio Tools编写所有内容,然后在VM中进行调试以确保它可以在Linux上运行。


@Chris我发现Visual Studio是针对.NET开发的最佳IDE-我认为针对Mono的最佳方法实际上是在Windows下在Visual Studio中开发和构建,然后直接在Linux(或任何其他版本)上运行这些二进制文件您正在使用的其他Mono平台)。如果需要考虑许可,可以使用Visual Studio的免费版本。如果您使用Linux开发,最好的软件可能是带有Mono插件的Eclipse(有关安装说明,请参见《 Mono手册-Eclipse》),但请记住,它没有Visual Studio具有的大量功能或语言集成。

@modesty Mono是.NET框架的第三方开放源代码实现,允许您在Windows以外的平台上运行.NET应用程序。


如果使用Visual Studio for Mono进行开发,您可以做的最好的事情之一就是获得MoMA http://www.mono-project.com/MoMA。这将检查您构建的任意数量的程序集,并生成报告以显示潜在的Mono问题(例如,mono库中未实现的方法)。它可以从GUI或命令行运行,以用于自动构建。


就个人而言,我只是在Visual Studio 2008中进行编译,就好像它是针对.Net 2.0一样,然后在Mono中运行(Windows上为VirtualBox中的VS2008,在VirtualBox中为OSX)。无论如何,所有问题都会在运行时出现,因此系统可以正常运行。

我刚刚发现了这个非常新的链接,这很棒,并向您展示了如何为Mono设置Visual Studio 2008。

同时,在VirtualBox(Sun的产品)内的OpenSuse或Ubuntu上设置Mono变得容易,轻松,并且不会迫使您放弃通常使用的任何平台。

这与您的问题无关,但是我可能会注意到,我刚接触Mono时,我对实现了.Net的数量感到惊讶,包括很多Winforms东西。


完全没有理由使用Mono构建您的应用程序。 .Net CLR的全部要点是编译后的输出是跨平台的。

因此,您可以简单地使用自己喜欢的IDE(如果喜欢IDE,最好使用Microsoft的IDE)来构建它,然后在Mono上进行测试。即使您可以在Windows上使用Mono,也不能很好地测试应用程序的可移植性:如果您的应用程序做一些愚蠢的事情,例如假设文件名中带有反斜杠,或者名为Program Files的文件夹有什么特别之处,该怎么办?进行可移植性测试的最佳方法是在目标平台上实际测试您的应用程序。

使用Linux VMware播放器(例如http://www.go-mono.com/mono-downloads/download.html上的播放器)非常容易。


Miguel发表了有关调试在Linux上运行Mono以及在Visual Studio上进行远程调试的文章。这可能是您想要研究的东西。使用Visual Studio调试Mono。还有一个名为CloverLeaf的新项目,其目标是在Visual Studio中的Windows上启用调试Mono。


用于Mono的Eclipse插件已死。在Linux上,如果您希望获得良好的商业支持,请使用MonoDevelop或X-Develop(尽管MonoDevelop将在功能上快速关闭它们)。在Windows上,SharpDevelop具有用于针对Mono编译代码的自定义MSBuild目标。

由于Mono和MonoDevelop的变化很快,因此即使尚未标记为稳定版本,也请确保使用最新发布的版本(例如,Ubuntu随附的版本已经过时了)。

VMWare映像是开始在Linux上测试Windows开发的代码的好方法。除非您已经非常适应cygwin,否则请不要触摸它。


我的第一个直觉是相当无益的"安装Linux"。您正在逆流而上,试图在Windows下开发Mono。安装GTK以及一切都会困扰我。

如果您确实想使用linux,则可以尝试Ubuntu

除此以外:

这里有一些信息:http://www.mono-project.com/Mono:Windows,看来cygwin工具链可能是您最好的选择。不幸的是,我认为您将无法避免生成文件。我从O'Reilly找到了更为明确的教程。

@modesty:

Mono provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix. Sponsored by Novell (http://www.novell.com), the Mono open source project has an active and enthusiastic contributing community and is positioned to become the leading choice for development of Linux applications.

-来自Mono网站。


我喜欢尝试使用MonoDevelop的想法,主要是为了确保我的东西可以在Mono运行时中使用。我猜想也有可能会因msbuild疯狂而编写一些试图针对Mono进行构建的自定义目标,但这基本上是在模拟现已失效的插件功能,我认为这是不容易的。我对cygwin的使用确实很少,我很高兴整天都输入" configure"和" make",但是当该过程中出现问题时,我几乎被搞砸了。我可能会再次尝试所有这些,但是如果我花了两个多小时才想出一种针对Mono运行时进行舒适构建的方法,我可能会保释。

我将尝试Eclipse的想法。我将其用于Java,因此我也许可以使c#正常工作。我们将会看到...


推荐阅读