好吧,我已经浏览了网络,BOL,各种论坛,我也没有接近答案...希望你们好人们可以伸出援助之手......
我们在网络上有十几个SQL Server(大约2k,一些2005).我在.NET应用程序中使用SMO对象来获取一些标准信息.我的问题似乎归结为一个丢失的DLL - Microsoft.SqlServer.BatchParser.dll.但是,此DLL没有附带其他SQL DLL(Microsoft.SqlServer.ConnectionInfo.dll,Microsoft.SqlServer.Smo.dll,Microsoft.SqlServer.SmoEnum.dll,Microsoft.SqlServer.SqlEnum.dll等...) .我还从微软的网站下载了包含SMO对象的SS2005功能包,但仍然没有运气.
以下代码有效,除非我取消注释当前注释的行,在这种情况下我得到以下错误:
protected void btnArchive_Click(object sender, EventArgs e) { ServerConnection conn = new ServerConnection("my_server"); conn.LoginSecure = false; conn.Login = "my_login"; conn.Password = "my_password"; Server s = new Server(conn); Database d = s.Databases["my_database"]; //Table tbl = d.Tables["my_table"]; Response.Write(s.Name + " " + s.Information.RootDirectory + " " + d.CreateDate.ToShortDateString()); conn.Disconnect(); }
错误:无法加载文件或程序集"Microsoft.SqlServer.BatchParser,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91"或其依赖项之一.该系统找不到指定的文件.
注意,我也是使用VB.NET从SSIS尝试过的,同样的行为.
任何想法将不胜感激.
谢谢.
我能够使用10.*版本的程序集"Microsoft.SqlServer.ConnectionInfo","Microsoft.SqlServer.Management.Sdk.Sfc"和"Microsoft.SqlServer.Smo"成功运行代码.尝试下载2008版本的SMO组件,也许这是他们现在修复的错误.
你在盒子上运行x64操作系统吗?在64位环境中似乎存在BatchParser.dll问题 - 通常建议从Microsoft 下载SMO x64软件包(SQLServer2005_XMO_x64.msi).
请在此处查看相关信息.