在昨天的Windows Update之后,我似乎在构建项目时遇到了问题。
Related Windows Updates could be:
ASP.NET MVC 2.0: KB2993939
ASP.NET MVC 3.0: KB2993937
ASP.NET MVC 4.0: KB2993928
ASP.NET MVC 5.0: KB2992080
ASP.NET MVC 5.1: KB2994397
这些错误似乎都与我检查过的System.Web.Mvc
命名空间有关;它仍然与References
下的项目相关联。在Windows Update期间,我的MVC项目可能出现什么问题,我该如何解决?
以下是指示今天管理的更新的日志:
答案 0 :(得分:34)
最近的更新增加了版本号
3.0.0.0 - > 3.0.0.1和4.0.0.0 - > 4.0.0.1
我必须删除引用并重新添加(在Assemblies> Extensions中找到System.Web.Mvc是Add Reference对话框)
答案 1 :(得分:10)
我在Windows更新后遇到同样的问题。 有我的解决方案。
Install-Package Microsoft.AspNet.Mvc -Version 5.2.0.0 -Project PROJECTNAME
此外,您可以尝试使用这些代码,也许有帮助。
Uninstall-Package Microsoft.AspNet.Mvc -Force
古德勒克。
答案 2 :(得分:5)
有两种方法可以解决这个问题:
选项1:使用NuGet添加Microsoft.AspNet.Mvc
使用NuGet将您所依赖的MVC版本的最新版本添加到项目中。 Microsft推荐这种方法。
选项2:更新汇编参考
如果向项目添加新的assymbly引用,您将看到System.Web.Mvc程序集现已版本化为x.0.0.1。
我建议不要直接尝试重新安装MVC。虽然它最终对我有用,但是当NuGet与MVC安装程序捆绑在一起时,你会遇到麻烦。
您需要在重新安装MVC之前卸载NuGet,因为NuGet仍然存在会导致MVC安装程序拒绝安装或失败。
此外,我不知道为什么重新安装MVC会阻止Windows Update在重新安装MVC后再次应用更新。
答案 3 :(得分:1)
随着补丁增加,版本号已经从(对于MVC4从4.0.0.0上升到4.0.0.1)上升,项目文件中的参考路径需要更改:
<Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\bin\System.Web.Mvc.dll</HintPath>
</Reference>
到
<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\bin\System.Web.Mvc.dll</HintPath>
</Reference>
显然适当调整提示路径,并对其他版本的MVC进行类似的更改
答案 4 :(得分:0)
我们遇到同样的问题。
Microsoft将版本从3.0.0.0更改为3.0.0.1
我想这就是Visual Studio无法找到引用的原因,因为常规设置是&#34;使用特定版本 - true&#34;。
在我的情况下,我无法将设置更改为false,因为我在同一台机器上使用Mvc4,它会自动使用版本4 dll。
解决方案是删除System.Web.Mvc.dll的项目引用并再次添加。然后VS将使用Version-3.0.0.1-DLL作为参考。
答案 5 :(得分:0)
重新安装MVC程序集
下载链接:http://www.microsoft.com/en-US/download/details.aspx?id=30683
答案 6 :(得分:0)
我尝试了mh28的解决方案,其中提出了以下建议:
最近的更新增加了版本号
3.0.0.0 - &gt; 3.0.0.1和4.0.0.0 - &gt; 4.0.0.1
我不得不删除引用并重新添加(在。中找到System.Web.Mvc) 程序集&gt;扩展名是“添加引用”对话框)
最重要的是,我还建议在整个兴趣范围内运行查找和替换;我试过了,但失败了。似乎查找和替换不适用于.csproj文件。
接下来我要做的是找到一个文本替换工具(请参阅Ecobyte Replace Text)并使用以下设置运行程序:
我的所有项目都按照正常情况构建,我没有看到任何副作用(尽管web.config
文件没有做任何更改)。我不确定(我不认为)这是最好的解决方案,我不认为这是受安全相关的Windows Update for .NET影响的所有System.Web.Mvc
问题的灵丹妙药,但我认为这对于需要重新引用的大量项目的具体案例非常有用。
答案 7 :(得分:0)
尝试使用here提供的 MSI包的最新版本安装/修复ASP.NET MVC。
如果您在bindingRedirect
中使用web.config
,则可能需要(我的项目中不需要)更新部分。见the answer。这仍然没有帮助我建议您检查项目中的其他 web.config文件,例如~/Views/web.config
。
答案 8 :(得分:0)
我最近遇到了同样的问题。
在Windows Update之后 - 我在Visual Studio中的项目突然出现了500多个错误 - 所有错误都与system.web.mvc相关
所以我删除了引用并重新添加它 - 在C:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies中找到
很棒 - 项目编译。
将它放在网站上 - 获取“无法加载一个或多个请求的类型。检索LoaderExceptions属性以获取更多信息”
经过多次搞乱后,我去了网站,在那里下载了它的版本 - 引用它 - 它在我的笔记本电脑和现场工作
唷!!!!!!!
答案 9 :(得分:0)
这个问题对我而言。但是,修复比使用nuget修复或更新web.config简化得多。 通过手动更新{ProjectName} .csproj中的文本
解决了我的问题参考Include =“System.Web.Mvc,Version = 3.0.0.1 ,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL”
到
参考Include =“System.Web.Mvc,Version = 3.0.0.0 ,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL” 检查更改,并在构建代理程序中运行构建,对我来说,这是TeamCity。
尽管这会在本地导致构建错误,但它解决了源代码控制/团队城市构建错误。
我意识到这不允许我在本地构建,而无需更改csproj文件。但是,在我按上面的方法检查更改后(将其从3.0.0.1更改为3.0.0.0),我可以在本地更新项目以使用新版本(3.0.0.1),而不是检查对csproj的更改。 我想有人可能有类似的情况。