C# 突然,我的web api项目找不到System.web.Mvc的引用,编译很好,但运行时出错

C# 突然,我的web api项目找不到System.web.Mvc的引用,编译很好,但运行时出错,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,突然,我的web api项目停止了运行,尽管它编译得很好。它现在说它在System.Web中找不到System.Web.Mvc。查看应用程序历史记录时,我注意到项目文件将引用从Prviate=True更改为private=False,并删除了属性processorArchitecture=MSIL 这可能是什么原因造成的?为什么它会破坏我的运行时 这是我的csproj文件中一个发生变化的相关部分。 原件: <Reference Include="System.Web.Mvc, Vers

突然,我的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>
新的:

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


在解决方案资源管理器中选择对System.Web.Mvc的引用,并在属性窗格中选择复制本地:True。清理和重建,这应该可以做到。

我刚刚发现了同样的事情——一个编译过的项目突然间似乎缺少System.Web.Mvc.dll

在添加来自程序集/扩展名的引用并将.csproj文件与以前的版本进行比较后,我可以看到System.Web.Mvc.dll显然已在我的计算机上从3.0.0.0升级到3.0.0.1-可能是在Windows更新期间


因此,请检查.csproj文件中指定的版本,然后将其与程序集/扩展名中可用的版本进行比较-可能是版本的少量增加导致了问题。

这就解决了问题,我想知道为什么会突然发生变化。这也发生在我身上。“复制本地”将进行排序,但为什么它会突然这样做?通过将副本设置为本地,对web部署有何影响?
   <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>