我一直在尝试设置ASP.NET MVC 2 RTM Source以便与我的应用程序一起使用,因此我可以在调试时逐步完成模型绑定等操作。但是,我无法让它工作 - 我收到的错误如下:
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
的引用。<add assembly="System.Web.Mvc...
<compilation><assemblies>
部分注释掉web.config
项
<add assembly="System.Web.Mvc...
文件夹中的web.config
部分(以及每个区域的Views
文件夹中)注释掉Views
项System.Web.Mvc, Version=2.0.0.0
的任何引用,并将PublicKeyToken
值替换为null
(原为31bf3856ad364e35)所以,问题:
PublicKeyToken
的数字在哪里?PublicKeyToken
(31bf3856ad364e35),web.config
(例如System.Web.Extensions
)中的其他dll还有其他一些参考资料吗?谢谢!
更新 在回答Syd的问题时,这里有一些额外的信息:
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 Futures,但也在我的解决方案中构建了该项目,并引用它以在解决方案中使用System.Web.Mvc。
3)我使用了一些非标准的参考文献。相反,我会在这里列出截图:
Autofac
Autofac.Integration.Web
Autofac.Integration.Web.Mvc
Elmah
FluentValidation
FluentValidation.Mvc
log4net
MvcContrib
MySql.Data
NHibernate
MvcFutures
答案 0 :(得分:3)
您无需下载源代码或从GAC中删除引用。只需按照this blog post。
中描述的步骤操作即可Microsoft Symbols Servers
,无需输入网址,在VS2008中需要输入网址创建一个新的ASP.NET MVC应用程序,在控制器操作中放置一个断点,当断点被命中时,从调用堆栈加载System.Web.Mvc
程序集的符号,一旦符号加载,你将成为能够逐步完成源代码(在接受条款和条件之后)。
答案 1 :(得分:1)
您应该设置PublicKeyToken = null而不是注释<assemblies><add assembly>
行。