无法加载文件或程序集'System.Data.DataSetExtensions,Version = 4.0.0.0PublicKeyToken = b77a5c561934e089'或其中一个依赖项

时间:2018-03-25 13:48:00

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

错误说明:

  

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

     

装配加载跟踪:以下信息可能对您有所帮助   确定程序集'System.Data.DataSetExtensions的原因,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'   无法加载。

     

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

     

堆栈追踪:

     

[BadImageFormatException:无法加载文件或程序集'System.Data.DataSetExtensions,Version = 4.0.0.0,Culture = neutral,   PublicKeyToken = b77a5c561934e089'或其依赖项之一。文件   或目录已损坏且无法读取。 (HRESULT的例外情况:   0x80070570)]          System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly   locationHint,StackCrawlMark& stackMark,IntPtr pPrivHostBinder,   Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean   suppressSecurityChecks)+0          System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(的AssemblyName   assemblyRef,Evidence assemblySecurity,RuntimeAssembly reqAssembly,   StackCrawlMark&安培; stackMark,IntPtr pPrivHostBinder,Boolean   throwOnFileNotFound,Boolean forIntrospection,Boolean   suppressSecurityChecks)+225          System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,Evidence assemblySecurity,StackCrawlMark& stackMark,   IntPtr pPrivHostBinder,Boolean forIntrospection)+110          System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,Evidence assemblySecurity,StackCrawlMark& stackMark,   布局forIntrospection)+22          System.Reflection.Assembly.Load(String assemblyString)+34          System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串   assemblyName,Boolean starDirective)+48

     

[ConfigurationErrorsException:无法加载文件或程序集'System.Data.DataSetExtensions,Version = 4.0.0.0,Culture = neutral,   PublicKeyToken = b77a5c561934e089'或其依赖项之一。文件   或目录已损坏且无法读取。 (HRESULT的例外情况:   0x80070570)]          System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串   assemblyName,布尔starDirective)+729          System.Web.Configuration.CompilationSection.LoadAssembly(集信息   ai)+69          System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection   compConfig)+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,Exception appDomainCreationException)+734

     

[HttpException(0x80004005):无法加载文件或程序集'System.Data.DataSetExtensions,Version = 4.0.0.0,Culture = neutral,   PublicKeyToken = b77a5c561934e089'或其依赖项之一。文件   或目录已损坏且无法读取。 (HRESULT的例外情况:   0x80070570)]          System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+525          System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+118          System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest   wr,HttpContext context)+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

1 个答案:

答案 0 :(得分:0)

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

有一个与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中删除和添加引用也没有帮助。