vs2012下调试mvc4源代码

当前流行的应该是mvc3才对。然后在研究mvc3的源代码时候,@Html这个属性下的扩展方法Partial()都没有。IntelliSense不会提示该方法,找了半天的资料也问了一些博友,没看到好的解决棒法。最后没辙另辟蹊跷,就开始着手研究mvc4的源代码。正好这几天机器在体验win8,然后就顺便安装了vs2012。所以就在vs2012下体验mvc4的源码。

部署如下:先去codeplex下载mvc4源码,在vs2012下打开如图:

image

关于mvc4源代码的调试我参考了这个 地址 但是并没有这么复杂。调试步骤:

1.新建项目:vs2012已经自带了mvc3、mvc4.所以我建的是mvc4项目。

2.删除该项目下的System.Web.MVC,引用源代码下的mvc.dll

image

3.找到源代码下的CommonAssemblyInfo.cs

image

#if ASPNETMVC
[assembly: AssemblyVersion("4.0.0.1")]
[assembly: AssemblyFileVersion("4.0.0.1")]
[assembly: AssemblyProduct("Microsoft ASP.NET MVC")]
#elif ASPNETWEBPAGES

将这里的版本更该为4.0.0.1。

3.然后将我们自己刚建立的测试项目下的web.config。runtime节点下的mvc程序集版本更改为4.0.0.1

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.1" /><!--更改这里-->
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

最后大功告成。可以调试了截图。

image

image

image

image

至此:可以完整的调试了。最终效果图如下:

image

当然不知道大家是如何来调试的,也许根本什么都没改就直接可以调试了,在没有更改程序集版本号的时候,我死进不去mvc源码,总是说还未给该文档加载符号@#$!#$%^&#。微软的表述看不懂,就只有自己摸索了。

源码地址:http://pan.baidu.com/s/1jG6Pkl4

当然也可以在codeplex上下载。

原文地址:https://www.cnblogs.com/_popc/p/2875810.html