Azure发布执行Selenium C#脚本无法读取Excel文件问题求助
问题解决方案
1. 检查文件的复制配置
- 确认Excel文件在项目属性中,将「复制到输出目录」设置为「如果较新则复制」或「始终复制」。Azure构建时,只有标记为需复制的文件才会同步到输出目录,否则即使本地存在,部署后也会缺失。
2. 替换路径构建方式
Directory.GetCurrentDirectory()在Azure环境中可能指向Agent工作目录,而非测试项目的bin目录,推荐两种可靠方式:
- 基于程序集位置获取路径
直接获取当前测试程序集所在目录,确保指向bin文件夹的正确位置。var assemblyDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); string filePath = Path.Combine(assemblyDir, "Files", file); - 借助Azure Pipelines内置变量
string workDir = Environment.GetEnvironmentVariable("SYSTEM_DEFAULTWORKINGDIRECTORY"); string filePath = Path.Combine(workDir, "TestApplication", "bin", "Debug", "netcoreapp3.1", "Files", file);SYSTEM_DEFAULTWORKINGDIRECTORY是Azure Pipelines内置变量,指向Agent工作目录根。
3. 验证实际路径
在测试代码中添加日志输出,确认构建的路径是否正确:
var testPath = Path.Combine(Directory.GetCurrentDirectory(), "Files", file); Console.WriteLine("当前访问路径:" + testPath);
查看Azure Pipelines日志,对比实际存在的路径,排查拼接差异。
4. 检查构建任务配置
确保Azure Pipelines的构建/发布任务(如DotNet Build/Publish)未排除Files文件夹,确认输出目录的文件被完整包含到发布包中。
内容的提问来源于stack exchange,提问作者Rafael Nicola
相关产品推荐
相关产品推荐

