【问题标题】:Could not load file or assembly 'System.Data.DataSetExtensions, Version=4.0.0.0PublicKeyToken=b77a5c561934e089' or one of its dependencies无法加载文件或程序集“System.Data.DataSetExtensions,Version=4.0.0.0PublicKeyToken=b77a5c561934e089”或其依赖项之一
【发布时间】:2018-09-03 17:16:11
【问题描述】:

错误说明:

无法加载文件或程序集 'System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或 它的依赖项之一。文件或目录已损坏并且 不可读。 (来自 HRESULT 的异常:0x80070570)'

装配负载跟踪:以下信息可能有助于 确定为什么程序集 'System.Data.DataSetExtensions, 版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089' 无法加载。

警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。 注意:有一些与程序集绑定失败日志相关的性能损失。 要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

堆栈跟踪:

[BadImageFormatException: 无法加载文件或程序集 'System.Data.DataSetExtensions,版本 = 4.0.0.0,文化 = 中性, PublicKeyToken=b77a5c561934e089' 或其依赖项之一。文件 或目录已损坏且无法读取。 (HRESULT 的例外情况: 0x80070570)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean for Introspection, Boolean 抑制安全检查)+0 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据 assemblySecurity,RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean for Introspection, Boolean 抑制安全检查)+225 System.Reflection.RuntimeAssembly.InternalLoad(字符串 assemblyString,证据 assemblySecurity,StackCrawlMark& stackMark, IntPtr pPrivHostBinder,自省布尔值)+110 System.Reflection.RuntimeAssembly.InternalLoad(字符串 assemblyString,证据 assemblySecurity,StackCrawlMark& stackMark, Boolean for Introspection) +22 System.Reflection.Assembly.Load(String assemblyString) +34 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName, Boolean starDirective) +48

[ConfigurationErrorsException: 无法加载文件或程序集 'System.Data.DataSetExtensions,版本 = 4.0.0.0,文化 = 中性, PublicKeyToken=b77a5c561934e089' 或其依赖项之一。文件 或目录已损坏且无法读取。 (HRESULT 的例外情况: 0x80070570)] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 程序集名称,布尔星指令)+729 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo 艾)+69 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection 压缩配置)+226 System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +73 System.Web.Compilation.BuildManager.CallPreStartInitMethods(字符串 preStartInitListPath, Boolean& isRefAssemblyLoaded) +321 System.Web.Compilation.BuildManager.ExecutePreAppStart() +170 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, 异常 appDomainCreationException) +734

[HttpException (0x80004005): 无法加载文件或程序集 'System.Data.DataSetExtensions,版本 = 4.0.0.0,文化 = 中性, PublicKeyToken=b77a5c561934e089' 或其依赖项之一。文件 或目录已损坏且无法读取。 (HRESULT 的例外情况: 0x80070570)] System.Web.HttpRuntime.FirstRequestInit(HttpContext 上下文)+525 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext 上下文)+118 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest WR,HttpContext 上下文)+708

场景:

在 IIS 上发布的应用程序上弹出此错误,但本地副本在同一台机器上工作正常。

开发环境:

Visual Studio 2017,MS SQlServer 2014,实体框架代码优先。

观察:

新发布的版本有这个错误,但以前发布的版本可以正常工作。本地副本工作正常,在同一台机器上没有任何问题。

试过了:

Could not load file or assembly 'System.Data.DataSetExtensions, Version=3.5.0.0
[Could not load file or assembly 'System.Data.DataSetExtensions

【问题讨论】:

  • 您能否尝试删除临时 asp.net 文件,例如:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET(链接可能与您不同)再试一次?
  • @ErayBalkanli 好的,让我检查一下...
  • @ErayBalkanli 试过了......没有运气......
  • 请注意,您的错误显示版本 = 4.0.0.0。您是否在发布机器上安装了相同的 .net 版本?此外,如果您的解决方案中有多个项目,请检查它们是否都针对相同版本的 DLL。
  • @RodrigoWerlang 感谢您的建议。正如我所提到的,开发和发布的机器是相同的。此外,本地版本和所有以前发布的版本都可以正常工作。只有最新的发布在发布后突然显示此错误

标签: sql-server visual-studio entity-framework-6 visual-studio-2017 sql-server-2014


【解决方案1】:

发布有效的解决方案,因为它可能对某人有所帮助。

我执行了一个与 SqlServer 相关的可选 Windows 更新,该更新解决了该问题。

问题原因: 问题是由于恶意软件攻击需要恢复到可能损坏 dll 的先前工作备份。

由于错误消息显示 dll 已损坏/损坏,可以通过在确认错误的 PowerShell 中执行来确认

([system.reflection.assembly]::loadfile("C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.DataSetExtensions.dll")).FullName 

另外,请注意,下载和替换相同版本的 dll 也不能解决此问题。甚至尝试从 Visual Studio IDE 中删除和添加引用,但也没有帮助。

【讨论】:

    猜你喜欢
    • 2019-03-18
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多