我一直在試圖設置ASP.NET MVC 2 RTM Source用於我的應用程序,所以我可以在調試時通過模型綁定等步驟。但是,我一直沒能得到它的工作 - 我得到這樣的錯誤:步進ASP.NET MVC 2源碼
The type 'System.Web.Mvc.Controller' is defined in an assembly that is not referenced.
You must add a reference to assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'.
The type 'System.Web.Mvc.Async.AsyncControllerActionInvoker' is defined in an assembly that is not referenced.
You must add a reference to assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'.
等...
我跟着Steve Sanderson's howto(用於MVC1)的步驟,但也許有不同的步驟讓它在MVC2中工作?
步驟我已經採取了迄今:基於所有我的項目的System.Web.Mvc dll
到GAC
- 刪除引用。
- 在解決方案中添加了作爲項目的MVC源代碼。
- 在我的每個項目中添加了對System.Web.Mvc項目的引用。
- 在根
web.config
- 在
Views
文件夾中的web.config
的部分評論出<add assembly="System.Web.Mvc...
項目(和每個區域的Views
文件夾)的<compilation><assemblies>
部評論出<add assembly="System.Web.Mvc...
項 - 查找/替換任何引用到
System.Web.Mvc, Version=2.0.0.0
與null
取代他們的PublicKeyToken
值(是31bf3856ad364e35)
所以,問題s:
- 有沒有其他人能工作? (大概是的!)
PublicKeyToken
數字來自哪裏的錯誤?- 對
web.config
中的其他dll(例如System.Web.Extensions
)還有其他一些其他參考文獻PublicKeyToken
(31bf3856ad364e35)是否與此相關? - 任何想法我做錯了什麼?!我錯過的步驟?
謝謝!
UPDATE: 針對西德妮的問題,這裏的一些額外的信息:
1)從web.config中當前組件節點:
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
2)是的,我使用MVC期貨,但是我的解決方案中也包含該項目,並且已經引用它來在解決方案中使用System.Web.Mvc。
3)我正在使用一些非標準的參考。相反,一個截圖我會在這裏一一列舉:
Autofac
Autofac.Integration.Web
Autofac.Integration.Web.Mvc
Elmah
FluentValidation
FluentValidation.Mvc
log4net
MvcContrib
MySql.Data
NHibernate
MvcFutures
好的,只是嘗試過這一點,仍然有我害怕同樣的錯誤。 – UpTheCreek 2010-06-27 10:15:06
更多問題。 1)你可以在「程序集」節點中列出你的修改過的行嗎? 2)你可以在你的項目中進行參考的屏幕截圖嗎? 3)你還使用MVC未來? – Syd 2010-06-27 11:10:13
謝謝,我用您請求的信息更新了問題: – UpTheCreek 2010-06-28 08:28:07