如何在linux上构建单声道mvc应用程序?
这是,按照我的理解,绝对最小的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
在你上面的例子,你不要告诉任何其他库的编译器您需要的参考。这就是为什么它失败的消息关于遗漏参考。如果你写的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集成”。您需要为您的解决方案中需要的所有项目执行此操作。
有趣的问题,但敢问我为什么你不想使用MonoDevelop? – LiamB 2011-05-05 12:57:23
我怀疑,一旦你有正确的.NET框架和ASP.NET MVC框架/更新/等...它将与标准编译器在运行网站时编译....至少这是它如何在IIS上工作视窗。 – kenny 2011-05-05 15:55:49
@Pino这是一项自动服务器任务;它需要在未安装ui的服务器上运行。 @kenny不,情况并非如此。参见(3)。您必须先编译项目,然后才能在iis或任何其他Web服务器上提供它。 – Doug 2011-05-06 01:49:54