Tengo un script basado en NAnt que ejecuto en mi PC local que se conecta a SQL Server 2008 Express también en mi PC local para descartar y volver a crear bases de datos. archivos sql: esto funciona bien, no hay problema aquí.El proveedor 'SQLNCLI' no está registrado en el equipo local
El problema viene cuando he recreado la misma configuración en otro PC, me sale el error en mi guión de NAnt diciendo que:
System.InvalidOperationException: The 'SQLNCLI' provider is not registered on the local machine.
at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at NAnt.Contrib.Util.SqlHelper..ctor(String connectionString, Boolean useTransaction)
at NAnt.Contrib.Tasks.SqlTask.ExecuteTask()
at NAnt.Core.Task.Execute()
at NAnt.Core.Target.Execute()
at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies)
at NAnt.Core.Project.Execute()
at NAnt.Core.Project.Run()
He buscado en línea y han encontrado que en un foro que se sugirió que necesitaba instalar Microsoft SQL Server Native Client, y got it from this URL. (Es cierto que solo he instalado la parte Native Client de esto)
A pesar de que está instalado en mi segunda PC, la secuencia de comandos todavía me da el mismo error. ¿Alguna sugerencia?
Debería haber funcionado ... ¿Intentó reiniciar la máquina? –
¿Alguna razón en particular por la que utiliza el proveedor OleDB de .Net? Utilice el proveedor de SqlClient, no requiere que se instale ningún controlador, todo se envía con .net. –
Es posible que solo desee la flexibilidad de escribir en algo que no sea SQL Server si es necesario. – SqlRyan