2011-04-20 72 views
3

目前正在開發一個在VS2010中開發的項目。我在虛擬機中運行Windows,我已經完成了大部分.NET開發工作,但是現在我正在開發一個基於ASP.NET MVC3的新項目,所以我想我可以使用Mono/MonoDevelop來保存一些系統資源通過不運行Windows VM(在以前的準系統MVC2應用程序上完美工作)。使用Mono 2.10.x和ASP.NET MVC3獲取ninject/ninject.commons/ninject.web.mvc

新的MVC3項目正在使用Ninject和擴展。我不能僅僅運行並使其工作(加載錯誤)。所以我一直在嘗試git個人項目(ninject,ninject.web.commons,ninject.web.mvc | ninject.mvc3)並構建它們。
(剛剛從MonoDevelop的2.6 beta 2版本中創建這些文件,沒有成功與nant建設)

Ninject建立罰款,但我得到的編譯器崩潰建設等。這些甚至可以在Mono 2.10.x上使用嗎?如果有的話,任何人都可以成功地使用它們?

+0

也對此感興趣。我開始了一個基本的新項目,添加了.NET 4.0 ninject庫,隨後是示例項目。我得到一個「對象引用未設置爲對象實例」的異常。對於MVC2,我有特定於Mono的版本,但是這個版本還不適用於.NET4.0/MVC3。 – sanderd 2011-05-02 08:26:15

回答

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的指向這些,因爲它是GAC裁判的MVC是第2版)

而不是試圖用單聲道版本什麼Ninject相關的,我只是簡單地使用.NET ninject的DLL使用NuGet下載到VS2010。

然後,一切,幾乎,工作。該項目編制得很好。
我留下的唯一問題是FreeTDS在試圖與SQL服務器通信時無法正常工作。我經歷了FreeTDS的工作,並使用Python和pyodbc對其進行了驗證。單聲道仍然無法連接,只是超時。我從Mono 2.10.2 - > 2.10.1降級,神奇地,它工作。

所以,現在我已經得到了我們的項目在我的Mac正與MonoDevelop的(沒有VM需要纏着我的資源)使用MVC3,剃鬚刀,NHibernate的,Ninject ...

唷.....

+0

我記得我在Linux下用xbuild構建了Ninject和Ninject Mvc3庫,並且還添加了參考庫。然而,沒有解決我的「對象引用未設置爲對象的實例」 - 錯誤,所以我很好奇哪裏出了問題。我暫時切換到結構圖,這只是一個小項目:) – sanderd 2011-05-12 07:53:47