“/”应用程序中的服务器错误。
未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IO.FileLoadException: 未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 |
程序集加载跟踪: 下列信息有助于确定程序集“Newtonsoft.Json”无法加载的原因。
=== 预绑定状态信息 === 日志: 用户 = DESKTOP-66BK0FE\adzsm 日志: DisplayName = Newtonsoft.Json (Partial) 日志: Appbase = file:///F:/工作项目/CMS_2.0/CMS_2.0/ 日志: 初始 PrivatePath = F:\工作项目\CMS_2.0\CMS_2.0\bin 调用程序集: (Unknown)。 === 日志: 此绑定从 default 加载上下文开始。 日志: 正在使用应用程序配置文件: F:\工作项目\CMS_2.0\CMS_2.0\web.config 日志: 使用主机配置文件: C:\Users\adzsm\Documents\IISExpress\config\aspnet.config 日志: 使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config 的计算机配置文件。 日志: 此时没有为引用应用策略(私有、自定义、分部或基于位置的程序集绑定)。 日志: 试图下载新的 URL file:///C:/Users/adzsm/AppData/Local/Temp/Temporary ASP.NET Files/root/7bdc4153/9ec7540c/Newtonsoft.Json.DLL。 日志: 试图下载新的 URL file:///C:/Users/adzsm/AppData/Local/Temp/Temporary ASP.NET Files/root/7bdc4153/9ec7540c/Newtonsoft.Json/Newtonsoft.Json.DLL。 日志: 试图下载新的 URL file:///F:/工作项目/CMS_2.0/CMS_2.0/bin/Newtonsoft.Json.DLL。 警告: 比较程序集名称时发生不匹配: NAME 错误: 未能完成程序集的安装(hr = 0x80131040)。探测终止。 |
堆栈跟踪:
[FileLoadException: 未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)] System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0 System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +43 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +127 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +142 System.Reflection.Assembly.Load(String assemblyString) +28 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +46 [ConfigurationErrorsException: 未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +613 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +203 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +105 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +178 System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) +163 System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors) +53 System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors) +175 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +86 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +261 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +101 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +126 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +62 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +33 System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String virtualPath, String path) +37 System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +307 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 |
webform 2.0的框架
找到的程序集清单定义与程序集引用不匹配
意思就是有json.net的dll但和配置里的版本不一样
一般在webconfig里能找到配置.你先到bin里看现有的版本是多少.
再到配置版本的地方改成一样的
bin里4.0版本和2.0版本 都有
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
在config是这么写吗
@段情: config里配置应该是这样没错.
但bin里怎么会都有..2个dll文件名还不一样?
@吴瑞祥:
@段情: 不是这个...是bin文件夹里...而且这里也只有1个啊.,不可能有2个的.,
@吴瑞祥:
@段情: 点右键可以看到dll的版本.,
你是不是有多个项目.然后不一样的项目引用的json.net的版本不一样?
@吴瑞祥: 不是的 就这一个项目
@吴瑞祥: 我看其他的dll文件都是2.0以下的 这个是4.0的 是不是版本问题
@段情: 楼下说的也可以.你在nuget里卸载json.net.重新安装一下
@吴瑞祥:
@段情: 你用的什么版本vs.
@吴瑞祥: 2012的
@段情: 2012不是有工具了的.
安装的时候选择版本就好.你看下你的2.0最高是什么版本
@吴瑞祥: 能帮忙远程一下吗
@吴瑞祥: TV
删除掉这个引用,然后采用Nuget安装。Nuget会帮你处理版本不一致的问题。当然,你可以自己在web.config中兼容处理。
把之前的nuget卸载 重新安装吗
@段情: 是的,这是最简单的方式。必须用Nuget安装哈。
@幻天芒: 我试过了
@段情: 应该是你的VS版本太低了
@段情: 在扩展管理中,升级你的Nuget。
你这个问题啊,1、你把引用什么的都去掉,重新引用packages包。
2、把你的Newtonsoft.Json.dll文件都放在项目文件夹下面。
3、找到packages.config,可以直接在里面引用dll包。