2011-05-05 50 views
2

这是,按照我的理解,绝对最小的MVC应用程序的可能有:如何在linux上构建单声道mvc应用程序?

using System; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Mvc.Ajax; 
public class HomeController : Controller { 
    public string Index() { 
    return "Hello World"; 
    } 
} 

我的问题是,没有视觉工作室,或单声道的发展,你如何在Linux上构建此应用程序?

我个人是在运行ubuntu;我希望能够通过这样做:

gmcs hello.cs 

但是,给出了错误:

The type or namespace name `Mvc' does not exist in the namespace `System.Web'. Are you missing an assembly reference? 

什么?我如何获得这个所需的组装?我如何依赖它?

我一直在寻找一个答案了一整天,我已经看到了这个问题,即分为四大类解决方案:

1)把System.Web.Mvc.dll程序中创建“bin '文件夹并构建它。

这似乎没有做任何事情。

2)编译visual studio使用xbuild创建的神奇.sln文件。

我没有其中之一,或视觉工作室的副本。

3)您不需要编译Web应用程序,只需将服务器设置好即可使用。

不知道。我尝试使用xsp2并创建一个web.config,它只是在本地主机上404'd。我认为这是错误的。

4)您需要从源代码编译单声道才能正常工作。

我正在运行2.4这是性病。 Ubuntu的包;从我见过的评论应该是足够的?

那么,你怎么实际做到这一点?

-

以下解决方案的无(写作的)实际上已经为这个最终的答案,但我已经接受了我指出正确的方向其中之一。

要建立在Ubuntu上最小的MVC应用程序中(如上图),我必须做到以下几点:

apt-get install mono-2.0-devel 
gmcs /out:bin/out.dll /target:module /reference:/usr/lib/mono/2.0/System.Web.Mvc.dll hello.cs 

:d

+0

有趣的问题,但敢问我为什么你不想使用MonoDevelop? – LiamB 2011-05-05 12:57:23

+0

我怀疑,一旦你有正确的.NET框架和ASP.NET MVC框架/更新/等...它将与标准编译器在运行网站时编译....至少这是它如何在IIS上工作视窗。 – kenny 2011-05-05 15:55:49

+0

@Pino这是一项自动服务器任务;它需要在未安装ui的服务器上运行。 @kenny不,情况并非如此。参见(3)。您必须先编译项目,然后才能在iis或任何其他Web服务器上提供它。 – Doug 2011-05-06 01:49:54

回答

1

在你上面的例子,你不要告诉任何其他库的编译器您需要的参考。这就是为什么它失败的消息关于遗漏参考。如果你写的MonoDevelop或Visual Studio应用程序仍然可以构建解决方案,而无需加载它

$ gmcs /reference:path/to/my/assembly.dll /target:library path/to/my/csharp.cs 

您讲述语法如下其它参考文献的GMC和其他编译器。你可以使用msbuild(在windows上)来做到这一点。

在linux上,您可以选择使用xbuild或mdtool。如果您还安装了monodevelop,通常会安装mdtool。 xbuild是msbuild的单声道等效物,对于大多数项目来说,它们的工作原理是一样的。

Monodevelop具有额外的优势,您可以通过运行autotools和gnu make来获取它以生成Makefiles,从而以更多的linux/unix方式构建解决方案。

在查看monodevelop中的项目属性时,要以最后一种方式解决问题,请选择“为此项目启用makefile集成”。您需要为您的解决方案中需要的所有项目执行此操作。

+0

monodevelop不是一个选项,因为这是作为Linux服务器上的自动化任务完成的(不是用户界面)。 – Doug 2011-05-06 01:47:25

+0

啊!毕竟你是对的。 XD谢谢。 (编辑上面包含实际解决方案) – Doug 2011-05-06 01:51:20

相关问题