让ninject / ninject.commons / ninject.web.mvc使用Mono 2.10.x和ASP.NET MVC3

时间:2011-04-20 16:38:48

标签: asp.net-mvc-3 mono ninject monodevelop ninject.web.mvc

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

新的MVC3项目正在使用Ninject和扩展。我不能只运行xsp4并让它工作(加载错误)。所以我一直在尝试git个别项目(ninject,ninject.web.commons,ninject.web.mvc | ninject.mvc3)并构建它们。
(仅在MonoDevelop 2.6 beta 2中构建它们,使用nant无法成功)

Ninject构建正常,但是编译器崩溃会构建其他的。这些甚至可以与Mono 2.10.x一起使用吗?如果有的话,是否有人使用它们取得了成功?

1 个答案:

答案 0 :(得分: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)

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

然后,一切都在起作用。该项目编制得很好 我留下的唯一问题是FreeTDS在尝试与SQL服务器通信时不起作用。我经历了FreeTDS的工作,并用Python和pyodbc验证了它。 Mono仍然无法连接,只是超时了。我从Mono 2.10.2降级 - > 2.10.1,神奇地说,它起作用了。

所以现在我已经使用MVC3,Razor,NHibernate,Ninject让我们的项目在我的Mac上使用MonoDevelop(不需要占用我的资源的VM)......

呼.....