C# 如何在MS代理上的Azure管道上运行的代码上查找目录
我有一个Visual Studio c#项目,其结构如下:C# 如何在MS代理上的Azure管道上运行的代码上查找目录,c#,azure-pipelines,azure-pipelines-tasks,C#,Azure Pipelines,Azure Pipelines Tasks,我有一个Visual Studio c#项目,其结构如下: SolutionFolder |-Folder1 |- Project1 |- TestProject1 |-Folder2 |- Project2 |- TestProject2 |-TaskFolder |-file ...etc 其中一个管道任务在SolutionFolder下创建一个文件夹,并在其中写入一个文件。(即任务文件夹/文件) 当Testproj
SolutionFolder
|-Folder1
|- Project1
|- TestProject1
|-Folder2
|- Project2
|- TestProject2
|-TaskFolder
|-file
...etc
其中一个管道任务在SolutionFolder下创建一个文件夹,并在其中写入一个文件。(即任务文件夹/文件)
当Testprojects运行时,我想读取这个文件。
我在代码中调用GetCurrentDirectory,并在我的机器中返回TestProject文件夹的父文件夹。i、 e(Folder1)然后我可以转到父文件夹(即SolutionFolder)和相关文件。
任务文件夹/文件
但是,当它在管道中运行时,GetCurrentDirectory返回a/1,并且父级为a。因此,我必须添加1/s/SolutionFolder/TaskFolder/File才能访问该文件
是否有一种方法可以获取适用于MsAgent和本地计算机的文件夹起点。
i、 e(获取解决方案文件夹),然后/TaskFolder/File。因此,在这些环境下运行时,代码是相同的
注意:在本地运行时,文件应手动放置在/TaskFolder/File中,因为这主要用于调试
提前感谢。我会检查环境变量
BUILD\u SOURCEDIRECTORY
,如果null
您在本地场景中,请调用GetCurrentDirectory
,如果不使用concat SolutionFolder/TaskFolder/File作为解决方法,您可以编写两个相同的测试方法,包括读取文件。在testmethodA中硬编码本地路径,并在testmethodB中使用管道路径。然后根据测试过滤器指定要运行的测试。关于测试过滤器,你可以参考这个。谢谢你的回复,你的想法有两个路径,并选择它根据朱利奥维安下面是好的。我会试试的。谢谢,这值得一试。``string variable=“BUILD.SOURCESDIRECTORY”//Build.SourcesDirectory var Envvalue=System.Environment.GetEnvironmentVariable(variable,EnvironmentVariableTarget.Machine);`在使用Environment.VariableTarget参数和不使用Environment.VariableTarget参数的情况下尝试此操作,在管道上运行时,我得到Null或空。有什么想法吗?小心点。(点)vs(下划线)BUILD(下划线)SOURCESDIRECTORY=>Environment var BUILD.SOURCESDIRECTORY=>pipeline var在使用C#代码的情况下,选择(下划线)版本