asp.net程序集冲突解决笔记(未能加载文件或程序集"XXXXXXXXX")
先来看张截图。(未能加载文件或程序集”System.Web.Razor“)
先说一下我的情况。(扯蛋的,解决方法还在下面 —> _ < )
这是 ASP.NET MVC 的东西。老大写了一个Razor解析(以下叫 “BBRazor“ ),然后通过Nuget进行管理这个包,这个 BBRazor 依赖 Microsoft.AspNet.Razor(版本:2.0.x,也就是引用中的 System.Web.Razor)
然后在我的 Mvc Web项目里用了 Microsoft.AspNet.Razor (版本:3.0+),且我的Web项目需要引用 BBRazor、版本向下兼容,本来相安无事。然后我 把 BBRazor通过nuget给卸载了,再用nuget安装上(别问我为什么,病犯了)
然后,然后,然后 TMD,整个项目都不好了,●﹏●,跑不起来了,就报了上面的那玩意儿·~~~~
通过设置 版本重定向 也没有用,最后我查看 system.web.razor 这玩意儿的引用地址。是指向 BBRazor下的 System.Web.Razor(版本:2.0.x)
于是乎,打开 项目工程文件(就是Mvc Web 的 .csproj 文件我是用 EditPlugs打开的),ctrl+f 查找 razor,找到如下的地方,并且修改引用路径为正确版本dll 的路径,问题搞定,修改内容如下图。
关于版本重定向,其实这个是在确认项目工程引用的dll文件路径没问题的情况下,使用 程序集重定向版本 可以解决多版本的兼容问题。
查看某个引用程序集版本与路径的方法,选中某个 引用程序项 —》 鼠标右键 —》 属性(如下截图)
参考资料:
版本重定向(程序集版本重定向):https://msdn.microsoft.com/zh-cn/library/7wd6ex19