Azure Pipeline运行Specflow External Data时报ExcelDataReader程序集缺失错误
排查解决思路
- 检查依赖包的复制本地配置
打开测试项目的.csproj文件,确认你显式引用了对应版本的ExcelDataReader和ExcelDataReader.DataSet包,且配置了强制复制到输出目录,参考配置:
如果是非SDK风格的旧格式项目,右键点击项目引用中的ExcelDataReader相关依赖,将属性中的「复制本地」设置为<PackageReference Include="ExcelDataReader" Version="3.6.0"> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> <PrivateAssets>none</PrivateAssets> </PackageReference> <PackageReference Include="ExcelDataReader.DataSet" Version="3.6.0"> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> <PrivateAssets>none</PrivateAssets> </PackageReference>True。 - 添加绑定重定向配置
如果项目存在多版本依赖冲突,在测试项目的App.config文件中添加绑定重定向规则,强制所有调用指向3.6.0版本:<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="ExcelDataReader" publicKeyToken="93517dbe6a4012fa" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.6.0.0" newVersion="3.6.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> - 验证构建输出目录文件完整性
在Azure Pipeline的构建步骤后添加临时PowerShell任务,输出构建产物目录的文件列表,确认ExcelDataReader.dll确实被复制到了运行目录,参考命令:Get-ChildItem $(Build.SourcesDirectory) -Recurse -Filter "ExcelDataReader.dll" | Select-Object FullName - 检查Excel文件属性配置
右键点击项目中的clients.xlsx文件,将属性中的「复制到输出目录」设置为「如果较新则复制」,避免运行时找不到数据源文件。
内容的提问来源于stack exchange,提问作者PriyadarshaniPPatil
相关产品推荐
相关产品推荐

