我已经使用 dotnet core 创建了一个应用程序。我将它构建为一个独立的包。我正在尝试使用管道 UI 将其发布到 Azure 工件服务器。我已经能够成功构建自包含包,并且能够成功将其发布到 drop。我无法弄清楚如何获取 NuGet 包命令(以及后续的 Nuget 推送)来获取独立包以作为可下载包放置在工件服务器上。
这是我的发布任务的 YAML:
steps:
- task: DotNetCoreCLI@2
displayName: 'dotnet publish'
inputs:
command: publish
publishWebProjects: false
projects: '**/TelemetryReceiver.csproj'
arguments: '-c release -r win-x64 --self-contained true'
这是复制以构建登台的任务的 YAML:
您的构建管道引用“BuildConfiguration”变量,您已选择该变量可在排队时设置。为此 YAML 文件创建或编辑构建管道,在“变量”选项卡上定义变量,然后选择选项以使其在排队时可设置。请参阅https://go.microsoft.com/fwlink/?linkid=865971
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: '$(build.sourcesdirectory)'
Contents: '**\bin\$(BuildConfiguration)\**'
TargetFolder: '$(build.artifactstagingdirectory)'
Here is the YAML for publish:
steps:
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)\src\TelemetryReceiver\bin\Release\netcoreapp2.2\win-x64'
And here is the YAML for the NuGet pack:
steps:
- task: NuGetCommand@2
displayName: 'NuGet pack'
inputs:
command: pack
packagesToPack: src/telemetryreceiver/telemetryreceiver.csproj
versioningScheme: byPrereleaseNumber
在复制步骤中,日志表明完整的独立包确实被复制到“\src\TelemetryReceiver\bin\Release\netcoreapp2.2\win-x64”。但是最后一个包是从工件服务器下载的,它只是拾取“netcoreapp2.2”目录的内容。
当然,我对“dotnet publish”和“NuGet pack”任务应该如何关联感到困惑。似乎两者都独立评估.csproj
文件,就是这样。