azure-devops - 在 Azure DevOps 上构建多目标 nuget 包
问题描述
我正在尝试设置 Azure Pipeline 来构建和发布多目标 nuget 包。该解决方案设置了两个项目,为每个项目创建一个 nuget 包
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net461;netstandard2.1</TargetFrameworks>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>2.0.0.0</FileVersion>
<Version>2.0.0</Version>
<PackageId>TradingService.Messages</PackageId>
<Authors>Bankinvest</Authors>
<Product>TradingService.Messages</Product>
<Description>Package with trade messages.</Description>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
</Project>
当我运行这个命令
MSBuild .\TradingService.Messages.sln -t:Rebuild -p:Configuration=Release
我现在有两个包,每个项目一个。
在文件夹“.\tradingservice.messages\TradingService.Messages\bin\Release”中
net46 (folder)
netstandard2.1 (folder)
TradingService.Messages.2.0.0.nupkg
在我刚刚将它复制到文件共享之前,但现在我想将它发布到 Azure 工件
如何在 Azure 管道中设置构建?
解决方案
这就是我最终的结果。
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
buildConfiguration: 'Release'
packageVersion: 'not-set'
steps:
- task: PowerShell@2
displayName: 'Create version tag'
inputs:
targetType: 'inline'
showWarnings: true
script: |
$tags = git tag --sort=-creatordate
if($tags.Count -gt 0) {
${env:MyCompany.Version} = "$($tags[0]).${env:BUILD_BUILDID}"
}
else {
${env:MyCompany.Version} = "0.0.0.${env:BUILD_BUILDID}"
}
echo "##vso[task.setvariable variable=packageVersion]${env:MyCompany.Version}"
- task: DotNetCoreCLI@2
displayName: 'dotnet build Messages'
inputs:
command: 'build'
arguments: '-c $(buildConfiguration)'
projects: 'MyProject/MyProject.csproj'
- task: DotNetCoreCLI@2
displayName: 'dotnet pack Messages'
inputs:
command: pack
arguments: '-c $(buildConfiguration) /p:VersionPrefix=$(packageVersion)'
packagesToPack: 'MyProject/MyProject.csproj'
nobuild: true
versioningScheme: off
- task: NuGetCommand@2
displayName: 'push messages'
inputs:
command: 'push'
feedsToUse: select
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
nuGetFeedType: 'internal'
publishVstsFeed: 'abd98fce-94bb-4652-82ec-91b7bbb3d2a3'
allowPackageConflicts: true
versioningScheme: off
- task: DotNetCoreCLI@2
displayName: 'dotnet build Rules'
inputs:
command: 'build'
arguments: '-c $(buildConfiguration)'
projects: 'TradingService.Rules/TradingService.Rules.csproj'
- task: DotNetCoreCLI@2
displayName: 'dotnet pack Rules'
inputs:
command: pack
arguments: '-c $(buildConfiguration) /p:VersionPrefix=$(packageVersion)'
packagesToPack: 'TradingService.Rules/TradingService.Rules.csproj'
nobuild: true
versioningScheme: off
- task: NuGetCommand@2
displayName: 'push rules'
inputs:
command: 'push'
feedsToUse: select
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
nuGetFeedType: 'internal'
publishVstsFeed: 'abd98fce-94bx-4652-82xc-91b7xx3d2a3'
allowPackageConflicts: true
versioningScheme: off
推荐阅读
- swagger - AutoRest 错误:(检测到重复操作(这很可能是由于使用相同的 'operationId' 或 'tags' 的 2 个操作)
- c - Kmap 配对算法
- ios - iOS 15 更新后 UIView.animateKeyframes 无法正常工作
- javascript - 编号 h1,h2 标题,重置计数器的嵌套文档
- c - 外部定义和内联定义
- xml - oracle 插入 clob 时出错 - ORA-22993: 指定的输入量大于实际源量
- powerbi - 在 X 轴上显示月份,每个月包含年份 条形图
- node.js - 在节点js中将小时和分钟插入mongoDB日期
- python - Python 用列表在字典中舍入 UP/DOWN 整数
- database - 如何在 Laravel 中具有两个 with() 值的雄辩查询中使用 orderBy?