突然间,我的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>
答案 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
中可用的版本进行比较 - 可能是次要版本增量是导致问题的原因。