我有一个基于NAnt的脚本,我在我的本地PC上运行,它连接到SQL Server2008Express,也在我的本地PC上运行,以便使用.sql文件删除和重新创建数据库-这很好用,这里没有问题。
当我在另一台PC上重新创建相同的设置时,问题就来了,我在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 Native Client和got it from this URL。(诚然,我只安装了Native Client部分)
尽管这是安装在我的第二台PC上,脚本仍然给我相同的错误。有什么建议吗?
发布于 2009-09-30 20:54:13
这可能是x86/x64的问题吗?如果有问题的工作站是x64,并且您已经安装了x64版本的客户端,但是您尝试运行的应用程序位于x86空间中,那么您可能还需要在该工作站上安装x86版本的客户端。x86应用程序只会检查提供程序的x86版本,如果看不到任何版本,则会给出类似以下的错误。x64版本可能足够智能,可以检查这两个版本中的任何一个,尽管您可能会遇到相同的情况。
同样的事情也会发生在ODBC上- x86和x64数据源对于另一种类型的应用程序是不可用的-如果您希望从两个版本的应用程序中都可以看到某些内容,则需要在每个版本的管理工具中创建一个ODBC源。
https://stackoverflow.com/questions/1482095
复制相似问题