我使用Visual Studio 2010创建了一个asp.net MVc 3应用程序。它工作正常。我上传到安装了asp.net MVc 3的主机,它工作正常。我在visual studio 2012中打开了这个MVC 3解决方案。当时,它做了一些渐变。它创建了
151Marketing.v11.suo
UpgradeLog.html
UpgradeLog.xml
and a folder named _UpgradeReport_Files and backup folder.
当我在实时服务器上发布它时,我得到了框架错误。我看到一个备份文件夹,因为我猜它是在VS 12转换之前创建的。我应该使用它还是有任何其他方法来更改当前版本的代码以便在托管上工作,因为我在VS 12中打开它后,我也做了一些改变。
请建议
答案 0 :(得分:0)
可能你的MVC3项目已更新为MVC4。
将项目类型GUID替换为旧的mvc3文件(在.csproj文件中):
<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
如果是这种情况,请注意使用的引用库(版本)。
如果使用MVC4,则应将程序集本地复制到/ bin目录中。 此外,它可能已切换到4.5框架。 您可能希望将其降低到4.0。顺便说一句,MVC4也适用于框架4.0。
如果这不起作用,你可能会更好地创建一个新的MVC3项目,并从旧项目中复制所有cshtml和控制器(而不是web.config)。
如果您拥有管理权限,还可以安装Visual Studio 2010的asp.net mvc4更新。 如果您不想对MVC4程序集进行本地化,则可能需要在服务器上安装MVC4运行时。
答案 1 :(得分:0)
查看你的web.config并查看MVC的引用是否已升级到MVC4。如果是这样,请将它们还原为MVC3引用。
似乎我发现处理升级的好方法是在文件夹中备份解决方案和项目等...然后当你升级/打开/转换为使用vs 2012时,你可以使用“超越比较“或WinMerge”或其他比较工具,看看哪些文件发生了变化。
如果有任何文件被更改,它将是.sln / .csproj / web.config等......
我从MVC 3到MVC 4测试版有问题,我在这里发布了:MVC 4 Beta side by side installation error
您的问题不同,但我可能会从web.config开始
您可能已经设置了vs 2010 mvc 3,如下所示:
<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>
现在也许看起来像这样?
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>