![](/img/trans.png)
[英]Could not load file or assembly 'System.Web.Mvc, Version=3.0.0.0 on NEW box
[英]Could not load file or assembly 'System.Web.Mvc, Version=3.0.0.0' or one of its dependencies
我在包管理器控制台中使用以下命令在MVC项目中添加Ninject:
Install-Package Ninject -version 3.0.1.10
Install-Package Ninject.Web.Common -version 3.0.0.7
Install-Package Ninject.MVC3 -Version 3.0.0.6
当我运行应用程序时,我得到这样的错误:
无法加载文件或程序集'System.Web.Mvc,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
更新应用程序web.config文件
请务必在app web.config文件中进行这些更改,而不是在Views文件夹中进行web.config文件。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
如果您正在关注Pro ASP.NET MVC 5 ,请按照以下步骤解决此问题:
References
然后转到“ Manage NuGet Packages
。 Online
, nuget.org
并搜索ninject。 Ninject
, Ninject.Web.Common
和Ninject.MVC5
(该书说安装MVC3
)。 Manage NuGet Packages
菜单中(从步骤1开始),转到Updates
, nuget.org
。 Microsoft ASP.NET MVC
。 我有一个使用Ninject的Microsoft ASP.NET Web API 2.2
项目。
要解决这个问题,我必须为我的项目安装NuGet Package Microsoft ASP.NET MVC 4
,因为Ninject需要System.Web.Mvc
。 通过这样做,Visual Studio将System.Web.Mvc
添加到项目的引用。
此外,您应该为System.Web.Mvc
引用的属性设置Copy Local
= True,因此DLL将被复制到Bin
文件夹。 DLL没有标准的.NET Framework。 它是ASP.NET MVC包的一部分。
如果amighty的答案没有与你合作,试试这个
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
这个解决方案是在长时间挣扎于此错误之后出现的
我扩展了引用,当我在System.Web.Mvc上盘旋时,我发现它的版本是4.0.0.1。 它的路径很奇怪C:\\ Program Files(x86)\\ Microsoft ASP.NET \\ ASP.NET MVC 4 \\ Assemblies。 我的packages.config显示相应的nuget包是Microsoft.AspNet.Mvc.5.2.3。 参考似乎是错误的。 因此从项目中删除了引用。 然后使用以下命令卸载nuget包。
uninstall-package Microsoft.AspNet.Mvc -force
注意命令中的强制。
然后我通过以下命令重新安装它
install-package Microsoft.AspNet.Mvc -version 5.2.3.0
现在我确保引用的dll正确指向nuget one
d:\\维韦克\\代码1 \\ Sept17 \\包\\ Microsoft.AspNet.Mvc.5.2.3 \\ LIB \\ net45 \\ System.Web.Mvc.dll程序
现在,当我运行时,我发现了与System.Web.Webpages.Razor(Microsoft.AspNet.WebPages nuget)和System.Web.Razor(Microsoft.AspNet.Razor nuget)类似的问题。 所以我也删除了那些并重新安装了相应的nuget包。
然后它终于奏效了。
我的申请面临这个问题。
在我的解决方案中,我们有一个Web应用程序项目和一个web-api项目。 Web应用程序正在使用web-api。
我的问题的解决方案是Web应用程序中的Mvc dll版本与web-api项目的版本不同。 所以,每当我试图点击web-api时,都会抛出错误。 我只是确保两个项目都有相同的Mvc dll版本,并且事情开始正常。 您可以使用NuGet Package Manager。
只是提到它可供其他可能面临类似情况的人参考。
就我而言,缺少的程序集已作为项目的参考包含在内。 我通过选择它然后将其“复制本地”属性设置为True来解决。 我使用Visual Studio中的Web部署将我的项目“发布”到IIS。 这次将程序集复制到网站的\\ bin文件夹中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.