【问题标题】:Getting ninject / ninject.commons / ninject.web.mvc working with Mono 2.10.x and ASP.NET MVC3让 ninject / ninject.commons / ninject.web.mvc 使用 Mono 2.10.x 和 ASP.NET MVC3
【发布时间】:2011-04-20 16:38:48
【问题描述】:

目前正在开发一个在 VS2010 中开发的项目。我在虚拟机中运行 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 一起使用吗?如果是这样,有没有人成功构建|使用它们?

【问题讨论】:

  • 也对此感兴趣。我开始了一个基本的新项目,添加了 .NET 4.0 ninject 库,然后是示例项目。我得到一个“对象引用未设置为对象的实例”异常。使用 MVC2,我有 Mono 特定的构建,但是这个还不能用于 .NET4.0/MVC3。

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


【解决方案1】:

所以我能够让这个工作,但不是我想象的方式。各种 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(不需要虚拟机来占用我的资源)运行我们的项目......

呼……

【讨论】:

  • 我记得我用 xbuild 在 Linux 下构建了 Ninject 和 Ninject Mvc3 库,还添加了参考库。但是,没有解决我的“对象引用未设置为对象的实例”-错误,所以我很好奇出了什么问题。我暂时切换到结构图,这只是一个小项目:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多