我有一个带.NET Framework 4.0的asp.net MVC应用程序。现在在本地我将我的MVC版本更改为2.0.0.0到3.0.0.0并在服务器上部署,我发现该项目未成功部署。当我看到事件记录器时,我发现了以下错误
"异常消息:c:\ Apps \ Test \ WebUI \ Web.config(105):错误CS0234:类型或 命名空间名称' Mvc'名称空间中不存在System.Web' (是 你错过了一个装配参考?)"
当我看到我发现的web.config
文件时
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
搜索此错误并显示
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
to
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
also try this
<bindingRedirect oldVersion="1.0.0.0-3.0.0.1" newVersion="3.0.0.1" />
但同样的错误发生了。 我也看到了windows / assembly,虽然安装了MVC 3,但只有system.web.mvc 2.0.0.0存在。
请为此妥善解决。
答案 0 :(得分:0)
添加对system.web.mvc的引用,如果该引用不在引用列表中,请确保项目目标是框架4.5
答案 1 :(得分:0)
您必须在bin
文件夹中拥有所需的程序集。如果它在构建后不存在,只需转到您的项目 - &gt;参考 - &gt;查找System.Web.Mvc - &gt;右键单击 - &gt;属性 - &gt; Copy Local应设置为true
。
如果没有此设置,程序集将不会被复制到应用程序文件夹,从而导致您提到的消息。
答案 2 :(得分:0)
在解决方案资源管理器中:
true
。如果我记得正确的MVC3开发的一些PIA时刻,你可能不得不为少数几个程序集执行此操作。如果你想节省一些时间来确定哪些需要调整,Phil Haack让他们列出on his blog。为了完整起见,这是列表:
Visual Studio中较旧版本的工具未将“复制本地”属性设置为true
,这会将其添加到\bin
目录。
答案 3 :(得分:0)
我使用VS 12并建议使用WEB工具包安装VS 2015。 安装文件名是VS2015CommunityAzurePack。 如果使用VS 12,请不要这样做。我遇到了很多问题,需要花费很多时间来修复它。 当您将引用更改为“copy local = true”时,仅对System.Web引用执行此操作。