安装 MVC 4 后,MVC 3 中的 System.Web.WebPages 程序集引用错误



我有一个使用 System.Web.Mvc 版本 3 和 System.Web.WebPages 版本 1 的类库。安装 Visual Studio 2012(MVC 版本 4)后,我在 Visual Studio 2010 中编译此类库时遇到问题:

Assembly 'System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' uses 'System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' c:Program FilesMicrosoft ASP.NETASP.NET MVC 4AssembliesSystem.Web.Mvc.dll

在这个项目中,我还不想使用 MVC 4。

我在文本编辑器中打开了.csproj文件,发现了以下行:

<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>C:Program Files (x86)Microsoft ASP.NETASP.NET MVC 3AssembliesSystem.Web.Mvc.dll</HintPath>
</Reference>

我注意到我的机器(Windows 7 32位)上不存在HintPath,所以显然Visual Studio会自动采用最新版本(可能在GAC中)。我从项目引用中删除了System.Web.Mvc,并通过浏览到正确的路径再次添加它。.csproj 现在如下所示:

<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>................Program FilesMicrosoft ASP.NETASP.NET MVC 3AssembliesSystem.Web.Mvc.dll</HintPath>
</Reference> 

还要确保"版本"参数设置为 3.0.0.0。