Download
SkipStrongNames
http://aka.ms/skipsn, and
unzip it. From an elevated command prompt, run “skipstrongnames -e” to allow
you to run unit tests against the delay-signed binaries.
Copy following from
ASP.NET MVC 4 Source Code to new folder AspNetMvc4
"ASP.NET
MVC 4 SourceCode\src\System.Web.WebPages"
"ASP.NET
MVC 4 SourceCode\src\Common"
"ASP.NET
MVC 4 SourceCode\src\System.Web.Mvc"
"ASP.NET
MVC 4 SourceCode\src\VirtualPathUtilityWrapper.cs"
"ASP.NET
MVC 4 SourceCode\src\CodeAnalysisDictionary.xml"
"ASP.NET
MVC 4 SourceCode\src\CommonAssemblyInfo.cs"
"ASP.NET
MVC 4 SourceCode\src\CommonResources.Designer.cs"
"ASP.NET
MVC 4 SourceCode\src\CommonResources.resx"
"ASP.NET
MVC 4 SourceCode\src\ExceptionHelper.cs"
"ASP.NET
MVC 4 SourceCode\src\GlobalSuppressions.cs"
"ASP.NET
MVC 4 SourceCode\src\HashCodeCombiner.cs"
"ASP.NET
MVC 4 SourceCode\src\IVirtualPathUtility.cs"
"ASP.NET
MVC 4 SourceCode\src\MimeMapping.cs"
"ASP.NET
MVC 4 SourceCode\src\TransparentCommonAssemblyInfo.cs"
Create new solution
AspNetMvc4, add following 2 projects
System.Web.Mvc.csproj
System.Web.WebPages.csproj
Modify following 2
project files in text editor, or right click "Edit Project File" in
VS2012 IDE.
System.Web.Mvc.csproj
System.Web.WebPages.csproj
Remove
<Import
Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory),Runtime.sln))\tools\WebStack.settings.targets"
/>
Change
<Reference
Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference>
To
<Reference
Include="Microsoft.Web.Infrastructure" />
Change
<OutputPath>..\..\bin\Debug\</OutputPath>
To
<OutputPath>bin\Debug\</OutputPath>
Change
<OutputPath>..\..\bin\Release\</OutputPath>
To
<OutputPath>bin\Release\</OutputPath>
Remove
<DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
Remove
<PropertyGroup
Condition="'$(Configuration)|$(Platform)' ==
'CodeCoverage|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\..\bin\CodeCoverage\</OutputPath>
<DefineConstants>TRACE;DEBUG;CODE_COVERAGE;ASPNETMVC</DefineConstants>
<DebugType>full</DebugType>
<CodeAnalysisRuleSet>..\Strict.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
Change
<ProjectReference
Include="..\System.Web.Razor\System.Web.Razor.csproj">
<Project>{8F18041B-9410-4C36-A9C5-067813DF5F31}</Project>
<Name>System.Web.Razor</Name>
</ProjectReference>
<ProjectReference
Include="..\System.Web.WebPages.Razor\System.Web.WebPages.Razor.csproj">
<Project>{0939B11A-FE4E-4BA1-8AD6-D97741EE314F}</Project>
<Name>System.Web.WebPages.Razor</Name>
</ProjectReference>
To
<Reference
Include="System.Web.Razor" />
<Reference
Include="System.Web.WebPages.Razor" />
Modify
"Properties\AssemblyInfo.cs" in System.Web.WebPages.csproj
Change
[assembly:
InternalsVisibleTo("System.Web.Mvc,
PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
To
[assembly:
InternalsVisibleTo("System.Web.Mvc")]
Compile new
solution AspNetMvc4, ready to debug through ASP.NET MVC 4 source code!