未能加载文件或程序集“System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IO.FileNotFoundException: 未能加载文件或程序集“System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
在本地编译运行没问题,发布到IIS出现如上错误。
查证发现IIS文件系统中没有该版本的System.Web.Razor.dll,程序中的dll是2.0.0.0版本
但是本地编译后的Bin文件是3.0版本,因为本地IISExpress读取Bin目录,所以没报错。本地的Bin的dll是全部从svn获取的,猜想搭建项目的时候也遇到该问题,所以找了个3.0的dll嵌入了svn。
解决方案:
1.找个IIS需要的dll版本放上去即可。提示需要Version=3.0.0.0,项目重新引用下该版本的dll,IIS也替换下该dll就没问题了。
2.查证本地nuget,发现安装了该程序包,猜想可能nuget出了问题。卸该程序包,重新安装也可行