C# 是否存在用于工作区映射的生成变量
在DevOps构建模板中,我使用构建变量$(build.SourceBranch)在源代码管理中检索解决方案的源路径。但是,如果如图所示指定了多个工作空间映射,则变量为空。是否存在一个生成变量,该变量可以在指定多个工作区映射时返回第一个工作区映射,也可以返回正在生成的解决方案的源路径 Build.Repository.Tfvc.Workspace 有关预定义变量的更完整列表,请参见 如果您的存储库是Team Foundation版本控制,则定义“P>”。生成代理使用的TFVC工作区的名称 例如,如果Agent.BuildDirectory是c:\Agent\u work\12,Agent.Id是8,那么工作区名称可以是:ws\u 12\u 8 此变量是代理作用域,可以用作脚本中的环境变量和生成任务中的参数,但不能用作生成编号的一部分或版本控制标记 然而 我不确定这个,工作区的实际名称,是你要找的。您提到需要指向C# 是否存在用于工作区映射的生成变量,c#,tfs,azure-devops,C#,Tfs,Azure Devops,在DevOps构建模板中,我使用构建变量$(build.SourceBranch)在源代码管理中检索解决方案的源路径。但是,如果如图所示指定了多个工作空间映射,则变量为空。是否存在一个生成变量,该变量可以在指定多个工作区映射时返回第一个工作区映射,也可以返回正在生成的解决方案的源路径 Build.Repository.Tfvc.Workspace 有关预定义变量的更完整列表,请参见 如果您的存储库是Team Foundation版本控制,则定义“P>”。生成代理使用的TFVC工作区的名称 例如,
.sln
的路径,因此我假设您正在尝试获取该路径,以便可以构建它。对吗
在这种情况下,您应该将本地(read:agent)工作区映射定义为变量,以便告诉生成任务在该路径筛选器下生成.sln
文件。当然,变量的使用是可选的,但我更喜欢使用变量而不是到处“硬编码”字符串值。让我们面对现实吧。打字很难
在变量中存储映射路径
在映射中使用var
在var映射下构建.sln
不,我们没有此类变量来获取构建代理中的工作区映射。只需使用
Build.SourceBranch
它将返回生成排队等待的分支
但是,当存在多个映射时,将源分支设置为映射的最常见父级。如果没有公共父级,则可能为空。这是预期的行为
以下是一些应作为您需求解决方案的选项:
- 定义一个变量“映射”,并在构建中使用它 剧本
- 编写脚本以查询生成定义对象并读取 存储在该对象中的映射