先解释一下问题:我原来的电脑环境是Win7+VS2015,因为新换了个电脑环境变成Win10+VS2015了,所以就把原先的项目复制到新的机器上,那么问题来了,原先的一个项目在VS2015上打开竟然直接报错(注意:这里不是发布到IIS上,就是直接用VS中F5运行)。报的错很常见,但是一般的解决办法都不试用,解决可是废了老大劲儿了。

  未能加载文件或程序集“System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

下面就开始描述我的解决办法:

  1.按提示错误来说,找不到这个程序集,怎么可能,最终是发现文件版本不对。

      

  所以,就将webconfig中,System.Web.Helpers的版本号直接改为2.0。

      

  谁知道又报了一个新错误,找不到System.Web.WebPages.Razor。这个在web.config中压根就没有记录...........................

      

  2.紧接着我把上图几个程序集全部注释掉,可惜出现的错误更多了。我开始回到最开始的问题,因为Bin目录下的文件版本不对,这一次我不改web.config文件中的版本号,我去找一个System.Web.Helpers版本号为1.0的dll直接把原来的给覆盖掉。

   所以在项目文件夹下搜索,发现如下图所示,第二个dll的版本是1.0,第一个dll版本是2.0,将1.0的版本把2.0的版本给覆盖掉,重新用VS运行,结果还是报错。

      

  

  3.接下来经过讨论猜测有可能是.net framework 版本的问题,因为VS2015中版本直接都是4.0靠上,而项目用的是3.5,所以又在控制面板->程序->程序和功能中,点击启用或关闭Windows功能,进而把.net framework 3.5给装上,之后关机重启再次运行,结果还是不行。

      

  4.既然不是.net framework版本的问题,就有可能是MVC版本的问题,这个项目比较老,采用的都是MVC3,而VS2015中已经没有MVC3了,最低版本就是MVC4。

      

  就尝试着在VS2015上装一个MVC3,在引用上点击管理Nuget包。之后点击安装,就可以了。其中在输出过程中发现,旧的DLL被新的DLL替换,MVC的DLL文件也重新替换。

                    

      

      

  最终,再次打开VS运行,发现能够运行,不再报错。

      

  总结:这次项目的转移出的错误本来来说不算是太坑,但是因为是系统由Win7换成了Win10,所以我有很大的诱导性,刚开始总是以为是系统换了,导致运行环境变了,所以就会出现这种奇葩问题。看很多网上给的回复说是,Windows的历史包袱很重,一阵吐槽,不得不说这其实是个坑。但是这都解决不了问题,所以还的慢慢研究,经过讨论,发现问题的根本所在。

Win7上的ASP.NET MVC3项目在Win10上运行的一个坑的更多相关文章

  1. 百度Web富文本编辑器ueditor在ASP.NET MVC3项目中的使用说明

    ====================================================================== [百度Web富文本编辑器ueditor在ASP.NET M ...

  2. 在ASP.NET MVC3项目中,自定义404错误页面

    在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中 ...

  3. 在没有安装有mvc3的主机上部署asp.net mvc3网站,需要包含的DLL文件

    原文:在没有安装有mvc3的主机上部署asp.net mvc3网站,需要包含的DLL文件 http://hi.baidu.com/aspxdiyer/blog/item/5515a69943232f1 ...

  4. Web Server 在IIS上部署ASP.NET Core项目

    在IIS上部署ASP.NET Core项目 一.配置应用程序池为无托管: 二.安装ASPNETCoreModule:(核心) 下载地址:https://go.microsoft.com/fwlink/ ...

  5. .NET开发框架(五)-IIS上部署ASP.NET Core项目教程

    系列教程:从初学者到架构师的一步步蜕变 本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学.NET CORE的童靴入门有所帮助! 1.打开VS,创建项目,选择ASP.NET ...

  6. 在CentOS上部署Asp.Net MVC3的第一次尝试

    关注mono已经很久了,现在才有时间真正的尝试一下在linux中部署asp.net的网站,也算是记录 一下自己的第一次尝试吧. 我的实践的环境是win7 + VM10 + CentOS6.5 下面就是 ...

  7. ASP.Net Core项目在Mac上使用Entity Framework Core 2.0进行迁移可能会遇到的一个问题.

    在ASP.Net Core 2.0的项目里, 我使用Entity Framework Core 2.0 作为ORM. 有人习惯把数据库的连接字符串写在appSettings.json里面, 有的习惯写 ...

  8. 在Linux CentOS上部署Asp.Net Core项目(Tengine、Asp.Net Core、Centos、MySql)

    一.前言 1.简单记录一下Linux CentOS 7中安装与配置Tengine的详细步骤. 2.简单比较一下Tengine 和Nginx 3.搭建Asp.net Core和部署 Web程序 4.总结 ...

  9. ASP.NET MVC3 自定义编辑模版

    在View中显示Model中的各字段,默认是使用htmlhelper的EditorFor方法,在界面上显示的文本框.而使用EditorTemplates可在View上为特定字段显示自定义的界面.比如购 ...

随机推荐

  1. 各版本CRM所需端口号

    以下是微软官方提供的CRM端口号列表,收藏一下: 4.0 :https://msdn.microsoft.com/en-us/library/dd979226(v=crm.6).aspx This s ...

  2. Network服务器

    1.授权服务器与非授权服务器:大多数网游都是授权服务器,用户无法修改数据.

  3. Python学习之路——基础篇(1)字符串格式化

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式  百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 百分号方式 ...

  4. jquery里面的名称冲突解决方法

    jQuery 使用 $ 符号作为 jQuery 的简介方式. 某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号. jQuery 使用名为 noConflict( ...

  5. 【Python全栈笔记】08 [模块二] 20 Oct 递归 -*** 待补充

    递归 引入 递归的表现形式 下面是四个函数,互相调用返回结果 # 引入 递归的表现形式 def f1(): ' def f2(): r = f1() return r def f3(): r = f2 ...

  6. inline(内联)函数

    1,为小操作定义一个函数的好处是:     a.可读性会强很多.     b.改变一个局部化的实现比更改一个应用中的300个出现要容易得多     c.函数可以被重用,不必为其他的应用重写代码     ...

  7. task9暂存

    <h6>第一组项目</h6> <div class="wrap"> <div class="title"> &l ...

  8. DataRead 和DataSet区别

    dataset表示一个数据集,是数据在内存中的缓存. 可以包括多个表DatSet 连接数据库时是非面向连接的.把表全部读到Sql中的缓冲池,并断开于数据库的连接 datareader 连接数据库时是面 ...

  9. ubuntu 15 安装cuda,开启GPU加速

    1 首先要开启GPU加速就要安装cuda.安装cuda,首先要安装英伟达的驱动.ubuntu有自带的开源驱动,首先要禁用nouveau.这儿要注意,虚拟机不能安装ubuntu驱动.VMWare下显卡只 ...

  10. Coursera Machine Learning 作业答案脚本 分享在github上

    Github地址:https://github.com/edward0130/Coursera-ML