Mam skrypt oparty na NAnt, który uruchamiam na moim lokalnym komputerze PC, który łączy się z SQL Server 2008 Express, działający również na moim lokalnym komputerze, aby usunąć i ponownie utworzyć bazy danych za pomocą. pliki sql - działa to dobrze, bez problemu.Dostawca "SQLNCLI" nie jest zarejestrowany na komputerze lokalnym
Problem zaczyna się kiedy odtworzyli ten sam set-up na innym komputerze, pojawia się błąd w moim skrypcie NANT mówiąc, że:
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()
Szukałem w Internecie i okazało się, że na forum jest zasugerowano, że muszę zainstalować klienta natywnego Microsoft SQL Server i got it from this URL. (Wprawdzie zainstalowałem tylko część Native Client)
Pomimo tego, że jest zainstalowany na moim drugim komputerze, skrypt nadal daje mi ten sam błąd. Jakieś sugestie?
Powinno zadziałało ... Czy próbowałeś ponownie uruchomić urządzenie? –
Jakiś szczególny powód, dla którego korzystasz z dostawcy OleDB z .Net? Użyj dostawcy SqlClient, nie wymaga instalacji żadnego sterownika, wszystko jest dostarczane z .net. –
Może on po prostu chcieć elastyczności pisania do czegoś innego niż SQL Server w razie potrzeby. – SqlRyan