在DevOps构建模板中,我使用构建变量$(Build.SourceBranch)在源控件中检索解决方案的源路径。但是,如果如图所示指定了多个工作空间映射,则该变量为空。是否有一个构建变量,如果指定了多个变量,则可以返回第一个工作空间映射,或者可以返回正在构建的解决方案的源路径。
答案 0 :(得分:1)
有关预定义变量的完整列表,请参见documentation。
定义您的存储库是否为Team Foundation版本控制。构建代理使用的TFVC工作空间的名称。
例如,如果Agent.BuildDirectory为c:\ agent_work \ 12且Agent.Id为8,则工作空间名称可能为:ws_12_8
此变量是代理作用域的,可以用作脚本中的环境变量和构建任务中的参数,但不能用作构建号的一部分或用作版本控制标记。
我不确定要查找的是工作空间的实际名称。您提到要到.sln
的路径,所以我假设您试图通过它来构建它。是吗?
在这种情况下,您应该将本地(读取:代理)工作空间映射定义为变量,以便可以告诉构建任务在该路径过滤器下构建.sln
文件。当然,变量的使用是可选的,但是我更喜欢在各处使用变量来对字符串值进行“硬编码”。面对现实吧。打字很难!
答案 1 :(得分:1)
不,我们没有这种变量可以在构建代理中获取工作空间映射。只需使用bool obscureText = false;
FocusNode _focusNode = FocusNode();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Padding(
padding: const EdgeInsets.all(24.0),
child: Column(
children: <Widget>[
TextFormField(
focusNode: _focusNode,
obscureText: obscureText,
decoration: InputDecoration(
suffixIcon: IconButton(
icon: Icon(obscureText ? Icons.visibility_off : Icons.visibility),
onPressed: () {
setState(() => obscureText = !obscureText);
Timer.run(() => _focusNode.unfocus());
},
),
),
),
TextField(),
],
),
),
);
}
,它将返回构建已排队的分支。
但是,有多个映射时,源分支被设置为映射的最常见父级。它没有共同的父母,也许是空的。
以下是应该满足您要求的一些选项: