突然,我的web-api项目无法找到对System.Web.Mvc的引用,编译得很好但是运行时错误

时间:2013-04-26 11:56:10

标签: c# asp.net-mvc-4

突然间,我的web-api项目已经停止运行(虽然编译得很好)。它现在说它无法在System.Web中找到System.Web.Mvc。查看应用程序历史记录,我注意到项目文件将引用从Prviate = True更改为private = False并删除属性processorArchitecture = MSIL。

导致这种情况的原因是什么?它会破坏我的运行时间?

这是我的csproj文件的相关部分已更改。 原文:

  <Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <Private>True</Private>
      <HintPath>..\packages\Microsoft.AspNet.Mvc.4.0.20710.0\lib\net40\System.Web.Mvc.dll</HintPath>
  </Reference>

新:

   <Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">   <HintPath>..\packages\Microsoft.AspNet.Mvc.4.0.20710.0\lib\net40\System.Web.Mvc.dll</HintPath>
      <HintPath>..\packages\Microsoft.AspNet.Mvc.4.0.20710.0\lib\net40\System.Web.Mvc.dll</HintPath>
      <Private>False</Private>
     </Reference>

2 个答案:

答案 0 :(得分:1)

这听起来像应用程序的System.Web.Mvc.dll目录中缺少bin

在Solution Explorer中选择对System.Web.Mvc的引用,然后在Properties窗格中选择“Copy Local:True”。清洁和重建,应该这样做。

答案 1 :(得分:1)

我刚刚发现了同样的事情 - 突然编译的项目似乎缺失了System.Web.Mvc.dll

添加引用(来自Assemblies/Extensions)并将.csproj文件与之前版本进行比较后,我可以看到System.Web.Mvc.dll显然已在我的计算机上从3.0.0.0升级到{ {1}} - 可能在Windows Update期间。

因此请检查.csproj文件中指定的版本,然后将其与3.0.0.1中可用的版本进行比较 - 可能是次要版本增量是导致问题的原因。