我有一个NAnt基于脚本,这是我跑我的地方的电脑连接到SQL服务器2008表还跑在我的地方的电脑下降和重新创建数据库的使用。sql文件-这工作很好,没问题这里。

问题是当我们重新创建的同样设在另一台电脑,我的错误在我NAnt脚本说:

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

我有搜索的在线和已经发现在一个论坛,有人建议,我需要安装Microsoft SQL Server地的客户,和 把它从这个网址.(应当承认,我只安装了当地客户的一部分,这个)

尽管如此,正在安装在我的第二个电脑,脚本仍然给予我的同样的错误。任何建议?

有帮助吗?

解决方案

正确的供应商SQL服务器2008是 SQLNCLI10.1.
为SQL服务器2012年,那将是 SQLNCLI11. (来源)

可悲的是,迁移到2008年没有拿起改变...

其他提示

它可能是一个问题x86/64?如果工作中的问题是64,你已经安装了64版本的客户,但应用你试图运行是在x86空间,可能需要的x86版本的客户上,工作站。X86的程序只会检查x86版本的提供者,看到没有,将给出一个错误就像这一个。该64版本可能是足够的智慧来检查任何一个版本,虽然也许你会有同样的情况。

这一同样的事情发生ODBC-x86和64数据来源不可用于其他类型的应用-如果你想要的东西是可以从两个版本的应用程序,则需要创建一个ODBC源在每个版本的管理工具。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top