Tengo un paquete DTS que se ejecuta en nuestro servidor de base de datos MS SQL Server 2000 y necesita una forma para que los usuarios lo ejecuten desde sus propias máquinas. (El paquete crea archivos que luego transfiere mi aplicación a la máquina cliente). He incluido la referencia COM de "Microsoft DTSPackage Object Library" en la aplicación, pero sigo recibiendo un error de "Cadena de Clase Inválida" cuando el primer paso del el paquete se ejecuta. También intenté registrar todas las DLL especificadas en el archivo redist.txt del disco de SQL Server 2000. Cualquier opinión o sugerencia sería muy apreciada. El paquete DTS es muy simple. Simplemente copia datos de la base de datos SQL en tablas de Visual FoxPro. Mi código que ejecuta el paquete está a continuación (gran parte del artículo de KB de Microsoft: http://support.microsoft.com/kb/321525)."Cadena de clase no válida" al intentar ejecutar el paquete DTS en VB .NET
Dim pkg As DTS.Package
pkg = New DTS.Package
Dim cpContainer As System.Runtime.InteropServices.ComTypes.IConnectionPointContainer
cpContainer = CType(pkg, System.Runtime.InteropServices.ComTypes.IConnectionPointContainer)
Dim cpPoint As System.Runtime.InteropServices.ComTypes.IConnectionPoint
Dim PES As PackageEventsSink = New PackageEventsSink
Dim guid As Guid = New Guid("10020605-EB1C-11CF-AE6E-00AA004A34D5")
cpPoint = Nothing
cpContainer.FindConnectionPoint(guid, cpPoint)
Dim intCookie As Integer
cpPoint.Advise(PES, intCookie)
pkg.LoadFromSQLServer(DTS_SERVER_NAME, , , DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, dtsPassword, , , dtsName, Nothing)
If pkg Is Nothing Then Throw New ApplicationException("The DTS Package could not be loaded from the SQL Server.")
Dim pkgStep As DTS.Step
For Each pkgStep In pkg.Steps
pkgStep.Execute()
Next
pkg.UnInitialize()
pkg = Nothing
cpPoint.Unadvise(intCookie)
cpPoint = Nothing
cpContainer = Nothing
PES = Nothing
Instalé todas las herramientas del cliente, pero igual recibí el mismo error. Estoy usando un código que, en el pasado, ha funcionado en máquinas cliente sin ningún requisito de registro de DLL. Cuando ejecuto la aplicación en una máquina sin ninguna de las DLL DTS registradas, aparece otro mensaje de error: Recuperación de la fábrica de la clase COM para el componente con CLSID {10020200-EB1C-11CF-AE6E-00AA004A34D5} error debido al siguiente error: 80040154 Después de algunas investigaciones, parece que este artículo de KB podría proporcionar una solución: http://support.microsoft.com/kb/326909. Haré un seguimiento después de haberlo probado. ¡Gracias! –