【问题标题】:Could not load file or assembly 'Microsoft.SqlServer.Smo, Version=10.0.0无法加载文件或程序集 'Microsoft.SqlServer.Smo,版本 = 10.0.0
【发布时间】:2012-10-16 22:03:55
【问题描述】:
  • 操作系统:Microsoft Windows NT 5.2.3790 Service Pack 2 版本:2.0.50727.42

正在做:创建表格...

Rec:system.m.FileNotFoundexception:无法加载文件或程序集 'microsoft.sqlserver.smo,版本=10.0.0.0,文化=中性文件名: 'microsoft.sqlserver.smo,版本=10.0.0.0,文化=中性, PublicKeyToken=89845dcd8080cc91' 在 claimure.Forml.Runsqlscript(string connstring, streamReader sr) 在 myapp.Forml.bw_Dowork(object sender, DoworkeventArgs e) 'MN: Assembly 绑定日志记录已关闭。启用程序集绑定失败 记录,设置注册表值 (NKLm\software\microsoft\Fusion!enableLog] (DwoRD) 为 1。注意:有 是与装配绑定失败相关的一些性能损失 记录。要关闭此功能,请删除注册表值 (NKLm\software\microsoft\Fusion!enableLog)。

在装有 SQL Server 2005 的 Windows 2003 服务器上运行我的应用程序时出现上述错误。

我知道有一个解决方案可以从http://www.microsoft.com/en-us/download/details.aspx?id=24793下载SQLServer2005_XMO

我已经这样做了,但是安装后需要重新启动服务器,这暂时不可行。

我需要使用服务器对象。

 using Microsoft.SqlServer.Management.Smo;
 using Microsoft.SqlServer.Management.Common;  

        using (SqlConnection connection = new SqlConnection(connString))
        {
            Server server = new Server(new ServerConnection(connection));
            server.ConnectionContext.StatementTimeout = 2400;
            server.ConnectionContext.ExecuteNonQuery(sqlString);

        }

是否可以将 dll 加载到与我的应用程序相同的目录中并从代码中引用它?

谢谢。

编辑:添加完整错误

【问题讨论】:

  • 完整的错误信息是什么?错误消息指出它无法加载程序集,但它也会说明为什么。可以提供吗?
  • SMO 版本 10.0 = SQL Server 2008 的 SMO - 因为您有 SQL Server 2005,所以您可能引用了错误的 SMO 程序集...
  • 这必须在不同的 SQL 版本上工作 - 2005 -> 2008。我已经测试了 2008 服务器并且它工作,现在测试 2005 并获得上述结果。 - 不知道如何做到这一点.. using 语句会选择我的开发机器上的版本吗?
  • 是的 - 但如果您使用 SMO v10.0 在装有 SQL Server 2005 的服务器上安装应用程序 - SMO v10.0 程序集在哪里?您是否将它们与您的应用一起发布?
  • 它们没有与应用程序捆绑在一起,但我可以访问服务器,我可以将 dll 文件放在服务器上/安装它而无需重新启动服务器吗?

标签: c# sql-server winforms tsql smo


【解决方案1】:

通过构建 MSI 安装程序并包含所有必需的 DLL 解决了这个问题。 谢谢指点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2020-05-09
    • 2018-10-04
    • 2020-11-11
    • 2013-11-14
    • 2020-04-02
    相关资源
    最近更新 更多