3

目前正在从事一个正在VS2010中开发的项目。我在虚拟机中运行 Windows,我在其中完成了大部分 .NET 开发,但我现在正在开发一个基于 ASP.NET MVC3 的新项目,所以我想我可以使用 Mono/MonoDevelop 来节省一些系统资源通过不运行 Windows VM(在以前的准系统 MVC2 应用程序上完美运行)。

新的 MVC3 项目使用 Ninject 和扩展。我不能只运行 wthxsp4并让它工作(大量错误)。所以我一直在尝试git单个项目(ninject、ninject.web.commons、ninject.web.mvc|ninject.mvc3)并构建它们。
(只是从 MonoDevelop 2.6 beta 2 中构建它们,没有成功构建nant

Ninject 构建得很好,但我得到编译器崩溃构建其他。这些甚至可以与 Mono 2.10.x 一起使用吗?如果是这样,有没有人成功构建|使用它们?

4

1 回答 1

2

所以我能够得到这个工作,但不是我想象的方式。各种 Ninject 项目都有单声道构建等,但我仍然遇到问题。

我的第二次尝试是使用 MonoDevelop 从源代码构建。这被证明是地狱,主要是使用 Ninject.MVC3(我们不得不更改一堆匿名方法|调用以使编译器满意)。我们最终得到了这个工作,但无济于事,它也无法让我们的项目工作。

所以,最后,我走上了一条不同的道路。

我刚刚复制了这些:

System.Web.Helpers.dll
System.Web.Mvc.dll
System.Web.Razor.dll
System.WebPages.Deployment.dll
System.Web.WebPages.dll
System.WebPages.Razor.dll

进入项目的 /bin 文件夹。
更新了从 MonoDevelop 中指向这些的引用,因为 MVC 的 GAC 引用适用于版本 2)

我没有尝试将 Mono 版本用于与 Ninject 相关的任何内容,而是简单地使用了使用 NuGet 下载到 VS2010 的 .NET ninject DLL。

然后一切,几乎,工作。该项目编译良好。
我留下的唯一问题是 FreeTDS 在尝试与 SQL 服务器通信时不起作用。我通过并让 FreeTDS 正常工作,并使用 Python 和 pyodbc 对其进行了验证。Mono 仍然无法连接,只是超时了。我从 Mono 2.10.2 -> 2.10.1 降级,神奇的是,它起作用了。

所以现在我的项目使用 MVC3、Razor、NHibernate、Ninject 在我的 Mac 上使用 MonoDevelop(不需要虚拟机来占用我的资源)运行。

呼……

于 2011-05-10T20:42:36.647 回答