问题描述
我有一个具有以下结构的 Visual Studio c# 项目:
SolutionFolder
|-Folder1
|- Project1
|- TestProject1
|-Folder2
|- Project2
|- TestProject2
|-TaskFolder
|-file
...etc
其中一个管道任务在 SolutionFolder 下创建一个文件夹并在其中写入一个文件。 (即任务文件夹/文件)
当测试项目运行时,我想读取这个文件。 我在代码中调用 GetCurrentDirectory,在我的机器中,这将返回 TestProject 文件夹的父级。即 (Folder1) 然后我可以转到父级(即 SolutionFolder)和相关文件。 任务文件夹/文件
然而,当它在管道中运行时,GetCurrentDirectory 返回 a/1 并且父项是 a。所以我必须添加 1/s/SolutionFolder/TaskFolder/File 才能访问该文件。
有没有办法获得适用于 MsAgent 和本地计算机的文件夹起点。 即(获取解决方案文件夹)然后 /TaskFolder/File。以便在每种环境下运行时代码都相同?
附言在本地运行时,文件应手动放置在 /TaskFolder/File 中,因为这主要用于调试。
提前致谢。
解决方法
我会检查环境变量 BUILD_SOURCEDIRECTORY
,如果 null
你在本地场景中并调用 GetCurrentDirectory
,如果不是使用 concat SolutionFolder/TaskFolder/File 到环境变量值。