我开始尝试使用Mono,目前主要是为了好玩。我首先尝试使用将csproj转换为makefile的Visual Studio插件,但似乎没有适用于Visual Studio 2005的版本。我还阅读了MonoDevelop IDE,听起来不错。不幸的是,它还没有预制的Windows软件包。我尝试通过组合来自其他半相关安装的依赖项来遵循一些指令来构建它。它不起作用,但这可能是因为我是一个面向Windows的人,几乎不能拼写“makefile”。
所以,我的问题是:在Windows上尝试基于Mono的开发的最低能耗方式是什么?
答案 0 :(得分:15)
我建议使用VMWare Player并使用网站上提供的免费Mono开发平台图片。
此设置时间最短,并且它还允许您使用.NET运行代码,然后专注于移植问题,而无需大量交换机器等麻烦。 VMWare Player工具允许您简单地拖放文件以复制它们。
我正在寻找几个我的.NET应用程序并使它们符合Mono标准,这就是我将要在这里采用的路径。
答案 1 :(得分:11)
一年后,对此的回答发生了很大变化。您现在可以在Windows上使用MonoDevelop,或者如果您在Visual Studio中更舒服,可以使用Visual Studio Tools编写所有内容,然后在VM中进行调试以确保它在Linux上运行。
答案 2 :(得分:9)
@Chris我发现Visual Studio是针对.NET开发的最佳IDE - 我认为定位Mono的最佳方法只是在Windows下开发和构建Visual Studio然后直接在Linux上运行这些二进制文件(或者您正在使用的任何其他Mono平台)。如果许可是一个问题,有免费版本的Visual Studio。如果您是在Linux下开发,最好的软件可能是带有Mono插件的Eclipse(有关安装说明,请参阅The Mono Handbook - Eclipse),但请记住,它没有接近Visual Studio所具有的功能或语言集成的数量。 / p>
@modesty Mono是.NET框架的第三方开源实现,它允许您在Windows以外的平台上运行.NET应用程序。
答案 3 :(得分:6)
使用Visual Studio for Mono进行开发时,您可以做的最好的事情之一就是获取MoMA http://www.mono-project.com/MoMA。这将检查您构建的任意数量的程序集,并生成显示潜在Mono问题的报告(例如,单声道库中未实现的方法)。它可以从GUI或命令行运行,以便在自动构建中使用。
答案 4 :(得分:4)
Miguel发表了一篇关于调试在Linux上运行Mono并在Visual Studio上进行远程调试的帖子。这可能是您想要研究的内容...... Using Visual Studio to debug Mono。还有一个名为CloverLeaf的新项目,其目标是在Visual Studio中启用Windows上的Mono调试。
答案 5 :(得分:4)
没有理由使用Mono 构建您的应用; .Net CLR的重点是编译后的输出是跨平台的。
所以你可以使用自己喜欢的IDE(如果你喜欢IDE,微软是最好用的)来构建它,然后在Mono上测试它。即使你让Mono在Windows上运行,也不是对你的应用程序的可移植性的一个很好的测试:如果你的应用程序做了愚蠢的事情,比如假设文件名中有反斜杠,或者有一个关于名为Program Files的文件夹有什么特别之处?进行可移植性测试的最佳方法是在目标平台上实际测试您的应用程序。
对于像http://www.go-mono.com/mono-downloads/download.html那样的Linux VMware播放器来说,这很容易做到。
答案 6 :(得分:4)
就我个人而言,我只是在Visual Studio 2008中进行编译,就好像它是用于.Net 2.0然后在Mono中运行一样(Windows上的VS2008在VirtualBox中运行,在OSX上运行Mono)。无论如何,所有问题都在运行时出现,因此系统运行良好。
我刚发现这个very new link,这很棒,并向您展示如何为Mono设置Visual Studio 2008。
与此同时,设置Mono on OpenSuse or Ubuntu inside a VirtualBox(Sun的产品)既简单又轻松,并且不会强迫您放弃通常居住的平台。
这与您的问题无关,但我可能会注意到,我刚刚进入Mono,我对.Net的实施程度感到惊讶,包括Winforms的大部分内容。
答案 7 :(得分:3)
我的第一直觉是相当无益的“安装Linux”。你有点swimming against the current尝试在windows下单声道开发。在我的经历中安装GTK并且一切都很麻烦。
如果你确实想使用linux,那么你可以Try Ubuntu
否则:
这里有一些信息: http://www.mono-project.com/Mono:Windows似乎cygwin工具链可能是您最好的选择。遗憾的是,我不认为你能够避免使用makefile。我从O'Reilly找到了一个更明确的教程。
@modesty:
Mono提供了在Linux,Solaris,Mac OS X,Windows和Unix上开发和运行.NET客户端和服务器应用程序所需的软件。由Novell(http://www.novell.com)赞助,Mono开源项目拥有一个积极热情的贡献社区,并有望成为Linux应用程序开发的首选。- 来自Mono网站。
答案 8 :(得分:3)
Mono的Eclipse插件已经死了。在Linux上使用MonoDevelop或X-Develop如果你想获得良好的商业支持(尽管MonoDevelop在功能上很快就会关闭它们)。在Windows上SharpDevelop具有自定义MSBuild目标,用于针对Mono编译代码。
由于Mono和MonoDevelop正在快速变化,请确保使用最新发布的版本,即使它们尚未标记为稳定版本(例如Ubuntu库存附带的版本非常过时)。
VMWare映像是在Linux上开始测试Windows开发代码的好方法。除非你已经非常熟悉,否则不要碰cygwin。
答案 9 :(得分:1)
我喜欢尝试使用MonoDevelop主要是为了确保我的东西可以对抗Mono运行时。我想也可能会对msbuild感到疯狂并编写一些试图针对Mono构建的自定义目标,但这基本上模仿了现在已经不存在的插件的功能,我认为这个功能非常简单。我对cygwin有很少的经验,我很高兴整天打字“配置”和“制造”,但是当这个过程出现问题时,我实际上已经搞砸了。我可能会尝试再次使用这一切,但是如果我需要花费几个小时才能提出一种方法来对抗Mono运行时,我可能只会保释。
我会尝试Eclipse的想法。我将它用于Java,因此我可以使用c#的东西来工作。我们会看到......