Я создал приложение с использованием ядра dotnet. Я создаю его как автономный пакет. Я пытаюсь опубликовать его на сервере артефактов Azure с помощью пользовательского интерфейса конвейера. Я смог успешно собрать автономный пакет и смог успешно опубликовать его. Мне не удалось выяснить, как получить команду NuGet pack (и последующую push-загрузку 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
, и все.
dotnet
команд: сначала используйте dotnet pack для создания файла .nupkg, затем используйте команду dotnet push, чтобы отправить nupkg в канал nuget. - person Rob Bos   schedule 22.08.2019