【问题标题】:Azure DevOps .NET Core build and publish doesn't keep given application versionAzure DevOps .NET Core 构建和发布不保留给定的应用程序版本
【发布时间】:2020-05-13 23:50:35
【问题描述】:

我有一个 ASP.NET Core 应用程序,我通过 Azure DevOps 构建/发布管道在专用服务器上发布。

我在 YAML 构建中使用 GitVersion 任务 (gittools.gitversion.gitversion-task.GitVersion@4) 管理应用程序版本号。

构建步骤类似于:

- task: DotNetCoreCLI@2
  displayName: 'dotnet build'
  inputs:
    command: custom
    custom: build
    workingDirectory: src/MyAppProjectFolder
    arguments: '-p:Version=$(GitVersion.FullSemVer)'

并且正在使用给定的 FullSemVer 正确生成 .exe(我正在检查 Azure 代理工作文件夹)

然后我有发布步骤:

- task: DotNetCoreCLI@2
  displayName: 'dotnet publish'
  inputs:
    command: publish
    publishWebProjects: false
    arguments: '--output $(build.artifactstagingdirectory) --no-restore --no-build'
    workingDirectory: src/MyAppProjectFolder

由于某种原因,我在发布创建的 C:\agent_work\1\a\a.zip 中找到的相同 .exe 没有正确的版本号,但通用 1.0.0。

如果我在同一台服务器上手动“模拟”管道(通过 powershell 手动使用 dotnet builddotnet publish,相同的参数)一切都会按预期工作。

发生了什么事?有没有办法确保应用程序保持 $(GitVersion.FullSemVer) 版本?

注意:我必须添加

- task: UseDotNet@2
  displayName: 'Use .Net Core sdk 2.1.x'
  inputs:
    packageType: sdk
    version: 2.1.x
    installationPath: $(Agent.ToolsDirectory)/dotnet
    includePreviewVersions: true

在每个 NET Core 任务前面,如 here 所述,在代理更新到 .NET Core 3.0 之后(在这些构建运行良好之前)。

【问题讨论】:

    标签: azure asp.net-core build azure-devops versioning


    【解决方案1】:

    尝试将-p:Version=$(GitVersion.FullSemVer) 添加到发布步骤的参数中。

    【讨论】:

    • 它正在工作!即使我最后采取了另一种方式:问题似乎与“UseDotNet@2”任务有关,所以为了避免它们,我只是锁定了项目的 SDK 版本,添加了 global.json。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 2022-09-29
    • 2019-05-30
    • 2023-04-04
    相关资源
    最近更新 更多