解决“未能加载文件或程序集Microsoft.SqlServer.SqlEnum,”的思路及解决过程

本文分享了一个在使用C#执行SQL脚本程序时遇到的问题,即在服务器上运行时报错未能加载特定类库。通过分析问题并采取相应措施,最终成功解决了类库版本不匹配导致的问题。文章提供了详细的排查步骤和解决方案,对于遇到类似问题的开发者具有参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做C#执行Sql脚本的程序,环境VS2012+Sql Server 2008。本地运行没有错误,但是发布到服务器上就报如下错误


“/”应用程序中的服务器错误。



未能加载文件或程序集“Microsoft.SqlServer.SqlEnum, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”或它的某一个依赖项。系统找不到指定的文件。


说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 


异常详细信息: System.IO.FileNotFoundException: 未能加载文件或程序集“Microsoft.SqlServer.SqlEnum, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”或它的某一个依赖项。系统找不到指定的文件。


源错误: 


执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。


程序集加载跟踪: 下列信息有助于确定程序集“Microsoft.SqlServer.SqlEnum, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”未能加载的原因。




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

要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。


看到以上报错信息顿时很慌张,首先我对系统文件不熟悉,对错误信息中提到的注册表也知之甚少,google搜索解决方案又没有类似的,项目验收在即,顿时如热锅上的蚂蚁。


但是不解决肯定是不行的,于是静下心来,慢慢想解决方案,思路也就有了。


首先,本程序我引用了三个dll文件,分别为:Microsoft.SqlServer.ConnectionInfo.dll    、Microsoft.SqlServer.Management.Sdk.Sfc.dll  、Microsoft.SqlServer.Smo.dll

这三个文件均是安装sql server时自带的公用类库,可以实现执行sql脚本(如创建、删除表及数据库等),由于我对这三个类库研究的不深,因此其他功能暂时不考虑。

言归正传,知道问题出现在哪几个类库上,我们再来看具体报错信息,“未能加载文件或程序集“Microsoft.SqlServer.SqlEnum, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”或它的某一个依赖项。系统找不到指定的文件。”   我在发布的服务器上看到有以上三个库文件(C:\Windows\assembly下)但是版本为Version=10.0.0.0 而本地环境中引用的类库版本为Version=11.0.0.0,导致服务器上不认识类库。把本地引用的类库版本换成10,重新生成后发布到服务器上,一切正常,问题解决。


以上就是解决思路及方案,以后碰到类似的问题,小伙伴们再也不用发愁了。现在把解决方案归纳一下:

1查找环境中是否有相应的类库

2查看版本是否正确(找到对应的类库,右键----属性-----详细信息---版权)

有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾。 ************** 异常文本 ************** System.Data.SqlClient.SqlException (0x80131904): 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。 在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager) 在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 在 System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) 在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) 在 System.Data.SqlClient.SqlConnection.Open() 在 RemoteServiceClient.Form_MyComSettting..ctor() 在 RemoteServiceClient.Form_RTCClient.button_COMSETTING_Click(Object sender, EventArgs e) 在 System.Windows.Forms.Control.OnClick(EventArgs e) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.Label.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ClientConnectionId:034ac75c-0fc7-4bd0-baf9-921e50542fa1 Error Number:18452,State:1,Class:14 ************** 已加载程序集 ************** mscorlib 程序集版本:4.0.0.0 Win32 版本:4.8.9310.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll ---------------------------------------- RemoteServiceClient 程序集版本:1.0.0.0 Win32 版本:1.0.0.0 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/RemoteServiceClient.exe ---------------------------------------- System.Windows.Forms 程序集版本:4.0.0.0 Win32 版本:4.8.9251.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System 程序集版本:4.0.0.0 Win32 版本:4.8.9310.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Core 程序集版本:4.0.0.0 Win32 版本:4.8.9297.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- System.Configuration 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Xml 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- Microsoft.GeneratedCode 程序集版本:1.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- System.Runtime.Serialization 程序集版本:4.0.0.0 Win32 版本:4.8.9241.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll ---------------------------------------- Newtonsoft.Json 程序集版本:13.0.0.0 Win32 版本:13.0.3.27908 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/Newtonsoft.Json.DLL ---------------------------------------- System.ServiceModel 程序集版本:4.0.0.0 Win32 版本:4.8.9241.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel/v4.0_4.0.0.0__b77a5c561934e089/System.ServiceModel.dll ---------------------------------------- System.Web.Extensions 程序集版本:4.0.0.0 Win32 版本:4.8.9282.0 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Extensions/v4.0_4.0.0.0__31bf3856ad364e35/System.Web.Extensions.dll ---------------------------------------- System.Data 程序集版本:4.0.0.0 Win32 版本:4.8.9214.0 built by: NET481REL1LAST_B 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll ---------------------------------------- System.Web 程序集版本:4.0.0.0 Win32 版本:4.8.9282.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Web/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.dll ---------------------------------------- Microsoft.SqlServer.Smo 程序集版本:17.100.0.0 Win32 版本:17.100.61.0 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/Microsoft.SqlServer.Smo.DLL ---------------------------------------- Microsoft.SqlServer.Management.Sdk.Sfc 程序集版本:17.100.0.0 Win32 版本:17.100.61.0 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/Microsoft.SqlServer.Management.Sdk.Sfc.DLL ---------------------------------------- Microsoft.SqlServer.ConnectionInfo 程序集版本:17.100.0.0 Win32 版本:17.100.61.0 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/Microsoft.SqlServer.ConnectionInfo.DLL ---------------------------------------- Microsoft.SqlServer.SqlEnum 程序集版本:17.100.0.0 Win32 版本:17.100.61.0 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/Microsoft.SqlServer.SqlEnum.DLL ---------------------------------------- Microsoft.Data.SqlClient 程序集版本:5.0.0.0 Win32 版本:5.16.24240.05 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/Microsoft.Data.SqlClient.DLL ---------------------------------------- System.Transactions 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll ---------------------------------------- Microsoft.SqlServer.SqlClrProvider 程序集版本:17.100.0.0 Win32 版本:17.100.61.0 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/Microsoft.SqlServer.SqlClrProvider.DLL ---------------------------------------- System.Runtime.InteropServices.RuntimeInformation 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.InteropServices.RuntimeInformation/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Runtime.InteropServices.RuntimeInformation.dll ---------------------------------------- System.Memory 程序集版本:4.0.1.1 Win32 版本:4.6.28619.01 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/System.Memory.DLL ---------------------------------------- System.Runtime.CompilerServices.Unsafe 程序集版本:6.0.0.0 Win32 版本:6.0.21.52210 基本代码:file:///C:/Users/%E6%9D%8E%E5%87%AF%E5%8D%8E/Desktop/%E7%BB%B4%E6%8A%A4%E5%AE%A2%E6%88%B7%E7%AB%AF2025.6.3/System.Runtime.CompilerServices.Unsafe.DLL ---------------------------------------- System.Data.resources 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Data.resources.dll ---------------------------------------- System.EnterpriseServices 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll ---------------------------------------- mscorlib.resources 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll ---------------------------------------- System.Windows.Forms.resources 程序集版本:4.0.0.0 Win32 版本:4.8.9037.0 built by: NET481REL1 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.resources.dll ---------------------------------------- ************** JIT 调试 ************** 要启用实时(JIT)调试, 该应用程序计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置 jitDebugging 值。 编译应用程序时还必须启用 调试。 例如: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> 启用 JIT 调试后,任何未经处理的异常 都将被发送到在此计算机上注册的 JIT 调试程序, 而不是由此对话框处理。客户端出现上述问题无法运行如何处理
06-25
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值