transact sqlserver sqlmanagementobjects scriptdom objects net microsoft management adomd sql-server dll smo

sqlserver - SQL Server SMO se queja de DLL faltante



sql server 2016 native client download (6)

Ok, he recorrido la web, BOL, varios foros y no estoy más cerca de una respuesta ... con un poco de suerte ustedes pueden echar una mano ...

Tenemos una docena de servidores SQL (unos 2k, algunos de 2005) en una red. Estoy usando objetos SMO en una aplicación .NET para obtener información estándar. Mi problema parece reducirse a una DLL faltante: Microsoft.SqlServer.BatchParser.dll. Sin embargo, esta DLL no viene con las otras DLL de SQL (Microsoft.SqlServer.ConnectionInfo.dll, Microsoft.SqlServer.Smo.dll, Microsoft.SqlServer.SmoEnum.dll, Microsoft.SqlServer.SqlEnum.dll, etc.) . También descargué el paquete de características SS2005 del sitio de Microsoft que incluye los objetos SMO, pero aún no tuve suerte.

El siguiente código funciona, a menos que descomente la línea que está actualmente comentada, en cuyo caso obtengo el siguiente error:

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(); }

Error: No se pudo cargar el archivo o ensamblado ''Microsoft.SqlServer.BatchParser, Version = 9.0.242.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.

Tenga en cuenta que también he intentado esto desde SSIS usando VB.NET, el mismo comportamiento.

Cualquier pensamiento sería apreciado.

Gracias.


Para que comprendamos el problema correctamente, ¿Microsoft.SqlServer.BatchParser.dll no está instalado en la Caché de ensamblados global en su máquina de desarrollo? Si es así, puede comenzar con la reinstalación de .NET Framework (la versión del Framework al que está apuntando) para ver si eso resuelve el problema.

También puede intentar usar la herramienta de configuración de .NET Framework para ver si el ensamblaje está realmente presente en el Caché de ensamblaje global (GAC). Este artículo de MSDN describe cómo usar esta herramienta.

(Una búsqueda en mi disco duro no devolvió el ensamblado Microsoft.SqlServer.BatchParser.dll aunque puedo verlo usando la herramienta de configuración de .NET Framework).


Pude ejecutar correctamente su código utilizando las versiones 10. * de los ensamblados "Microsoft.SqlServer.ConnectionInfo", "Microsoft.SqlServer.Management.Sdk.Sfc" y "Microsoft.SqlServer.Smo". Intente descargar la versión 2008 de los componentes de SMO , tal vez fue un error que han solucionado.


viene como parte del asesor de actualización 2005 u 2008.


Necesita instalar el siguiente paquete para resolver el problema. He resuelto este problema dos veces con este paquete. Espero que también funcione para todos ...

Colección de Objetos de Administración de Microsoft SQL Server 2005 El paquete de Colección de Objetos de Administración incluye varios elementos clave de la API de administración de SQL Server 2005, incluidos Objetos de Administración de Análisis (AMO), Objetos de Administración de Replicación (RMO) y Objetos de Administración de Servidor SQL (SMO). Los desarrolladores y los DBA pueden usar estos componentes para administrar SQL Server 2005 de manera programática.

Puede obtener de Feature Pack para Microsoft SQL Server 2005 - Diciembre de 2008 desde el sitio de Microsoft

http://www.microsoft.com/en-us/download/details.aspx?id=11988

Pero la ubicación del enlace de la página de descarga cambia cada vez que si no encuentra el recurso, también puede descargarlo de mi blog.

También he proporcionado algunos consejos y recursos sobre esto en mi blog si desea http://rndp-android.blogspot.com/p/missing-microsoftsqlservermanagementsdk.html


¿Estás ejecutando un sistema operativo x64 en tu caja? Parece que hay problemas con BatchParser.dll en entornos de 64 bits; por lo general, se recomienda descargar el paquete SMO x64 (SQLServer2005_XMO_x64.msi) de Microsoft.

Ver información sobre esto aquí .


Sé que llegué muy tarde a la fiesta aquí, pero este sigue siendo el primer resultado cuando buscas en Google "smo batchparser".

Al instalar SMO 2014 (12.0.x) algunos DLL solo se instalan en el GAC. Para hacer que su aplicación funcione sin tener que instalar manualmente SMO en el servidor de destino, debe copiar estos archivos DLL con su aplicación. Aquí están los caminos de donde los obtuve.

C: / Archivos de programa / Microsoft SQL Server / 120 / SDK / Assemblies / Microsoft.SqlServer.ConnectionInfo.dll

C: / Archivos de programa / Microsoft SQL Server / 120 / SDK / Assemblies / Microsoft.SqlServer.Management.Sdk.Sfc.dll

C: / Archivos de programa / Microsoft SQL Server / 120 / SDK / Assemblies / Microsoft.SqlServer.Smo.dll

C: / Archivos de programa / Microsoft SQL Server / 120 / SDK / Assemblies / Microsoft.SqlServer.SmoExtended.dll

C: / Archivos de programa / Microsoft SQL Server / 120 / SDK / Assemblies / Microsoft.SqlServer.SqlEnum.dll

C: / Windows / assembly / GAC_64 / Microsoft.SqlServer.BatchParser / 12.0.0.0__89845dcd8080cc91 / Microsoft.SqlServer.BatchParser.dll

C: / Windows / assembly / GAC_MSIL / Microsoft.SqlServer.BatchParserClient / 12.0.0.0__89845dcd8080cc91 / Microsoft.SqlServer.BatchParserClient.dll

C: / Windows / assembly / GAC_MSIL / Microsoft.SqlServer.SqlClrProvider / 12.0.0.0__89845dcd8080cc91 / Microsoft.SqlServer.SqlClrProvider.dll

Para acceder a los archivos GAC, deberá deshabilitar el visor incorporado de Windows utilizando las instrucciones proporcionadas por este artículo .

Un extracto del artículo para su conveniencia:

Abra el editor de registro y agregue / establezca el valor HKLM / Software / Microsoft / Fusion / DisableCacheViewer DWORD: 1