gpt4 book ai didi

Azure DevOps Pipelines - 具有多个项目的.NET Core 解决方案 - 如何进行单个构建和多个项目发布?

转载 作者:行者123 更新时间:2023-12-03 01:22:42 25 4
gpt4 key购买 nike

目前,我为此 .NET Core 解决方案设置了一个管道,由多个项目应用程序组成,但我正在独立构建每个“可交付项目”(REST API、gRPC API、ASP.NET Core MVC 应用程序等) - 此解决方案中每个可执行文件的一个 dotnet restoredotnet builddotnet testdotnet publishdocker builddocker push 任务)。它有效。

每个“项目子管道”都是主管道内的一个“代理作业”。客户要求我用 win-x64 构建项目RID 并将每个应用程序/API 打包在 Windows 容器中(dotnet CLI 不允许传递 RID 来构建整个解决方案 - 错误 NETSDK1134)。

问题是:如何为整个解决方案执行单个恢复/构建/测试周期(以缩短构建时间),并且只为每个项目分开发布步骤?

我知道 this question但我认为这是另一回事。你们能给我指点一些文档,在那里我可以找到与我的案例相关的更多信息吗?

我研究了一些有关 MSBuild 发布配置文件和自定义 MSBuild 项目的信息,但没有找到类似的内容。

提前谢谢您。

最佳答案

如果您想要执行单个恢复/构建/测试,您需要将整个源文件夹发布为工件,然后在您的工件中您将获得代码和构建程序集。然后在后续步骤中重用此工件。它可能看起来像:

trigger:
- master

pool:
vmImage: 'windows-latest'

variables:
buildConfiguration: 'Release'

steps:
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
feedsToUse: 'select'
vstsFeed: 'my-vsts-feed' # A series of numbers and letters

- task: DotNetCoreCLI@2
inputs:
command: 'build'
arguments: '--configuration $(buildConfiguration)'
displayName: 'dotnet build $(buildConfiguration)'

- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'

- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(System.DefaultWorkingDirectory)'
artifactName: 'solution'

然后在部署作业中,您将获得包含恢复的包的完整解决方案,并为进一步的步骤构建代码。

据我所知,关于 .NET RID here您有两个选择:

  • 可以在项目文件的元素中设置单个 RID。
  • 使用 --runtime 将其传递给 dotnet build

关于Azure DevOps Pipelines - 具有多个项目的.NET Core 解决方案 - 如何进行单个构建和多个项目发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68629413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com