尝试调试ASP.NET MVC 1.0源代码时,我遵循these之类的指令,基本上从我的web项目中删除对system.web.mvc的引用,并添加我下载的源项目。
现在,我有这个问题,
类型'System.Web.Mvc.FormMethod' 存在于两者中 'c:\ Windows \ assembly \ GAC_MSIL \ System.Web.Mvc \ 1.0.0.0__31bf3856ad364e35 \ System.Web.Mvc.dll'和我的AppData \ Local \ Temp \ Temporary ASP.NET 文件\根\ dbcbb149 \ 897fc019 \组件\ DL3 \ 796c00fb \ f345f2d6_abe3c901 \ System.Web.Mvc.dll程序'
我尝试在web.config中注释掉以下内容
<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
但它会产生差异
类型'System.Web.Mvc.Controller' 在一个不是的程序集中定义 引用。您必须添加引用 装配'System.Web.Mvc, 版本= 1.0.0.0,文化=中立, 公钥= 31bf3856ad364e35' 。
有人可以帮助解决出错的问题以及如何解决问题。非常感谢你!
雷
答案 0 :(得分:7)
无需从GAC卸载ASP.NET MVC! (或任何<assemblyBinding>
个)只需按照“Using the ASP.NET MVC source code to debug your app”文章的步骤进行操作。
有几个类似于你的问题:
答案 1 :(得分:1)
GAC中的system.web.mvc程序集是什么?你可能需要删除它们......这当然会搞乱未来的项目,因为项目模板可能会认为它们属于gac。
您还可以尝试使用<assemblyBinding>
功能described here将mvc内容指向您正在运行的版本。
答案 2 :(得分:1)
假设您链接的组件的完全限定程序集名称与GAC中的名称不同,请使用<QualifyAssembly>
element并指定您实际链接到的程序集。如果没有,请更改您的本地源以将您正在构建的MVC程序集更改为1.0.0.1,这样就不同了。
修改:仔细检查您关联的方式。它对我有用。
答案 3 :(得分:0)
对于qualify程序集部分,您需要这样的东西(我们为SQLite程序集执行此操作):
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="System.Data.SQLite" fullName="System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</assemblyBinding>
</runtime>
答案 4 :(得分:0)
请查看本文,了解有关如何setup MVC source的完整指南。
您需要更新两个web.config文件。一个位于MVC项目文件夹中,一个位于Views文件夹中。很可能你忘了更新后者。否则,按照上述条款应该这样做。
答案 5 :(得分:0)
稍微更全面的Steve Sandersons说明can be found here。
它解释了如何在调试中包含MVC Futures。