Azure devops 我怎样才能加上?’;“预发布”;添加到包名并将其推送到Azure DevOps源?

Azure devops 我怎样才能加上?’;“预发布”;添加到包名并将其推送到Azure DevOps源?,azure-devops,yaml,azure-pipelines,pipeline,Azure Devops,Yaml,Azure Pipelines,Pipeline,我对它进行了设置,以便它推送.csproj文件中定义的软件包版本,并根据主版本触发。是否有一种方法可以基本上命令包在提交到非主分支时具有一个名称,例如预发布-(包版本在.csproj中定义)?更新:添加了变量定义 当然,您可以通过根据正在生成的分支更改管道中的版本管道变量来实现这一点 在您的情况下,您需要在阶段/管道变量中添加一个版本变量: variables: - name: Version value: "" 然后,在尝试打包和推送工件之前添加此任务: -

我对它进行了设置,以便它推送
.csproj
文件中定义的软件包版本,并根据主版本触发。是否有一种方法可以基本上命令包在提交到非主分支时具有一个名称,例如
预发布-
(包版本在
.csproj
中定义)?

更新:添加了变量定义

当然,您可以通过根据正在生成的分支更改管道中的版本管道变量来实现这一点

在您的情况下,您需要在阶段/管道变量中添加一个版本变量:

variables:
  - name: Version
    value: ""
然后,在尝试打包和推送工件之前添加此任务:

- script: |
    echo '##vso[task.setvariable variable=Version]pre-release-$(Version)'
    echo "Setting Version to pre-release-$(Version)"
  condition: ne(variables['Build.SourceBranch'], 'refs/heads/master')
将变量设置为预发布名称后,您需要将版本传递给NuGet push,如下所示:

- task: DotNetCoreCLI@2
  displayName: "Run NuGet Pack"
  inputs:
    command: "pack"
    packagesToPack: "yourproject.csproj"
    versioningScheme: "off"
    buildProperties: Version=$(Version)

这似乎不起作用。它不知道
$(版本)
是什么。日志:
将Version设置为pre-release-/home/vsts/work/_temp/ab79fe90-2191-49c8-983f-162e4c392dce.sh:第2行:找不到Version:command
抱歉,我没有明确说明“Version”在本例中是一个自定义变量。您需要将其作为变量添加到Stage或Pipeline变量中。我已经更新了我的帖子,也加入了这个步骤。也许我遗漏了什么。我需要将版本设置为.csproj文件中的版本。如果我理解正确,这将只是将值设置为发布前-,因为版本等于零。嗨@Thevanilla,我们可以读取.csproj文件并匹配字段版本,然后将值设置为变量版本。@VitoLiu MSFT是正确的,上面的示例假设您将设置“版本”管道变量到项目文件中的内容。