Microsoft文档站点上有两个文档似乎为YAML模板参数声明了不同的语法。
我无法推断出下面第一个使用的位置,而第二个可以正常使用。我想知道版本声明类型是否已被弃用。
parameters:
- name: 'solution'
default: '**/*.sln'
type: string
parameters:
name: ''
testFile: ''
答案 0 :(得分:1)
您共享的脚本实际上是参数不同使用场景的两种语法。
让我们使用经典UI对其进行映射。在msbuild
任务中,有一个空白,要求您输入.sln
/ .csproj
文件路径:
通常,如果路径上没有什么特别的地方,则不需要手动更改此值。因为它是由系统自动注入任务中的。
这与下面的YAML
脚本完全相同:
parameters:
- name: 'solution'
default: '**/*.sln'
type: string
在YAML template
中进行配置时,在大多数情况下,无需再次在YAML
中进行配置,除非您要更改为另一个值。
这也是为什么我们说doc中的solution
参数是可选的原因:
与上述相反,使用以下语法时,参数是必需的:
parameters:
name: ''
testFile: ''
您此时必须从YAML传递值,否则将导致执行错误。因为从开始到结束都没有为它们注入任何值。
我想知道版本声明类型是否已弃用。
您的意思是任务版本声明吗?如果是,则否,不弃用。这是您必须提供的必需项。因为不同的任务版本可能具有不同的任务配置和执行逻辑。
您在此doc中看到的那个,就是快捷方式格式。参见此tab。到目前为止,我们仅支持以下快捷键关键字,它们不需要用户指定的版本。因为它们会自动选择我们的后端系统定义的默认版本值:
Script
=> command-line task
bash
=> shell script task
pwsh/powershell
=> PowerShell task
publish
=> Publish Pipeline Artifact task
download
=> Download Pipeline Artifact task
2020年3月9日更新:
parameters:
- name: 'solution'
default: '**/*.sln'
type: string
上面的脚本是更丰富的YAML语法,这是我们最近部署的新功能,并且 Azure devops服务器2019 迄今为止( 3/9/2020 )。
对于Azure devops服务器2019,它仅支持较旧的语法,其中默认声明为映射无类型或值约束:
parameters:
solution: '**/*.sln'