这很奇怪,因为在我的配置文件中我看到版本是 4.0.0.0,并且所有其他控制器都正常,只有在我将应用程序上传到服务器时才会出现这种情况。无法加载文件或程序集 "System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)
这很奇怪,因为在我的配置文件中我看到版本是 4.0.0.0,并且所有其他控制器都正常,只有在我将应用程序上传到服务器时才会出现这种情况。无法加载文件或程序集 "System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)
这是一个已知的问题。看起来您最近从3.0迁移到4.0,或者该应用程序是从存储库中克隆的。可能有单个控制器没有还原Nuget。我也遇到了这个问题。我找到了这个msdn 链接,浏览它并得到了解决方案。以下是提到的步骤。
可以通过实现以下解决方案之一来解决该问题:
(首选) 从NuGet画廊安装Microsoft.AspNet.Mvc(这将在您的web.config中安装绑定重定向)。您可以从Visual Studio中的NuGet包管理器或NuGet控制台执行此操作:
Install-Package Microsoft.AspNet.Mvc -Version -Project PROJECTNAME
MVC 4版本:4.0.40804.0
MVC 3版本:3.0.50813.1
手动更新对System.Web.MVC.dll的引用(不要使用GAC中的引用)。
尝试“添加引用”->“程序集”->“扩展”对话框框。
在任何一种情况下,请确保程序集的“复制本地”项目属性设置为true,以便它最终出现在您的bin文件夹中,这对于部署是必需的。已知存在一个NuGet错误,会重置“复制本地”标志:https://nuget.codeplex.com/workitem/4344
安装Nuget包Microsoft.AspNet.Mvc以供所有引用System.Web.Mvc dll的项目使用。希望这能解决您的问题。
\bin\x86\Debug
或类似的内容。\bin
。\bin
。
这里有更多关于问题的信息: 在Visual Studio中更改ASP.NET项目的输出目录
希望这能帮助到某些人。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" culture="neutral" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.6.0" newVersion="5.2.6.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
前往Nuget管理器,搜索:"Microsoft.AspNet.Mvc",然后点击更新按钮。
这在我的情况下有效。
你可以将ASP.NET MVC作为GAC的参考,但不同的开发者可能安装了不同版本的MVC。
移除对ASP.NET MVC的引用,并添加ASP.NET MVC作为NuGet包。