1

我有一个使用 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 Files\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web.Mvc.dll

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

4

1 回答 1

3

我在文本编辑器中打开 .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.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll</HintPath>
</Reference>

我注意到HintPath我的机器上不存在(Windows 7 32 位),所以显然 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 Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll</HintPath>
</Reference> 

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

于 2012-10-15T08:17:28.317 回答