我们最近使用代理配置“vs2017-win2016”在 Azure DevOps 中运行自动化测试。但是,由于该配置已被弃用,我们最近不得不升级到“windows-latest”配置,并且我们突然开始收到错误 'The 'SQLNCLI11.1' provider is not registered on the local machine'
当尝试连接到 SQL 数据库以拉回数据时。
我进行了一些谷歌搜索,听起来这些代理缺少 Microsoft Access 数据库引擎,这就是它失败的原因。有没有人找到解决方法?使用自托管代理并不是真正的选择,因为我们需要资源来设置它们,但我们无法使用这些资源,而且我们也没有预算。任何帮助将不胜感激!
我用来连接的连接字符串是:
"Server=tcp:" + server + ",1433;Initial Catalog = " + initialCatalog + ";Persist Security Info=False;User ID = " + username + ";Password=" + password + ";MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Provider=SQLNCLI11.1"
其中“server”、“initialCatalog”、“username”和“password”是我们传入的参数。
最佳答案
看起来 SQLNCLI 已被弃用,您应该使用 MSOLEDB
我想它已从构建代理中删除以鼓励迁移
以下是一些示例连接字符串
https://www.connectionstrings.com/ole-db-driver-for-sql-server/
此连接字符串是否有效:
"Provider=MSOLEDBSQL;Server=tcp:" + server + ",1433;Database = " + initialCatalog + ";UID = " + username + ";PWD=" + password + ";"
这里有更多示例 sqloledb 连接字符串
https://www.connectionstrings.com/microsoft-ole-db-provider-for-sql-server-sqloledb/
关于sql - Azure DevOps 托管代理 : The 'SQLNCLI11.1' provider is not registered on the local machine error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71684779/