You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行数据驱动单元测试时遇ODBC数据源名称未找到错误求助

解决Azure构建中Excel ODBC驱动找不到的问题

问题根源

本地运行正常但Azure构建失败,核心原因是Azure托管构建代理默认未安装你使用的旧版Excel ODBC驱动,且驱动的32/64位版本与测试运行环境不匹配。

具体解决步骤

1. 替换为ACE驱动(推荐)

放弃旧的Microsoft Excel Driver,改用更通用的**Microsoft Access Database Engine (ACE)**驱动,它支持xlsx格式且兼容性更好。修改连接字符串如下:

[DataSource(
    "System.Data.Odbc",
    "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=|DataDirectory|\\Data.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=YES;ReadOnly=1\";",
    "Sheet1$",
    DataAccessMethod.Sequential)]

注意:Extended Properties里的引号要转义,HDR=YES表示首行是列名,可按需调整。

2. 在Azure构建管道中安装ACE驱动

Azure托管代理没有预装ACE,需要在测试任务前添加安装步骤:

  • 添加一个PowerShell任务,运行以下脚本(安装64位ACE驱动,适配你的win7-x64运行时):
# 下载ACE驱动安装包
Invoke-WebRequest -Uri "https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine_X64.exe" -OutFile "ACEInstaller.exe"
# 静默安装
Start-Process -FilePath ".\ACEInstaller.exe" -ArgumentList "/quiet /passive" -Wait

3. 确保测试运行环境为64位

  • 检查Azure测试任务设置:在Visual Studio测试任务中,勾选Run tests in 64 bit process,确保与你的win7-x64 RuntimeIdentifier匹配,避免32位驱动与64位进程冲突。

4. 验证Excel文件部署

  • 确认DeploymentItem路径正确:如果你的Data.xlsx在项目中的实际路径是..\..\..\Data.xlsx,DeploymentItem应写相对输出目录的路径;或者直接依赖csproj中CopyToOutputDirectory=Always的设置,去掉DeploymentItem也可正常部署。

5. 替代方案(无环境依赖)

如果不想在代理上安装驱动,推荐直接用EPPlus等库读取Excel文件,完全绕过ODBC:

  • 安装EPPlus NuGet包
  • 在测试方法中直接读取Excel数据,手动实现数据驱动逻辑,这样不受环境驱动限制,稳定性更高。

内容的提问来源于stack exchange,提问作者Aarti Jangid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 08:47:19