Я новичок в конвейерах DevOps и CICD.
Я успешно развернул веб-сайт ASP .NET MVC с помощью конвейера Azure DevOps CICD на моем агенте / машине onprem с помощью Azure DevOps.
Точно так же я хочу развернуть консольное приложение, которое в конечном итоге можно использовать в качестве запланированного задания в Windows «Task Scheduler» или в качестве «Службы Windows». Сейчас я управляю этими развертываниями вручную, но, увидев мощь DevOps, я надеюсь, что действительно может быть какое-то автоматизированное решение и для консольных приложений.
Приложения встроены в устаревшую платформукак 3.5 до 4.5, так что нет .net core apps. Я нашел много онлайн-статей, которые демонстрируют развертывание веб-заданий на Azure или могут быть возможны для onprem, но возможно ли это для старых консольных приложений?
Я попытался создать очень простое консольное приложение в Framework 4.7 и попытался развернуть / скопировать / опубликовать на общем пути моего компьютера на preprem. Предоставил разрешение службам агентов VSTS, которые работают, но копировать файлы и публиковать задания артефактов не удается. Я пытался сделать это как в CI, так и в CD конвейерах, но все они терпят неудачу.
Пожалуйста, просмотрите конвейеры и журналы и предложите, где я делаю ошибку, или есть какие-либо альтернативы?
https://dev.azure.com/MSTCsandippatel/DemoConsoleApp
2019-11-05T05: 03: 52.8436105Z ## [ошибка] Публикация артефактов сборки завершилась ошибкой: невозможно создать каталог '\ MAHANTAM \ Azure Artifacts \ DemoConsoleApp». Невозможно проверить, существует ли каталог: '\ MAHANTAM \ Azure Artifacts \ DemoConsoleApp'. Если каталог является файловым ресурсом, убедитесь, что имя общего ресурса указано правильно, общий ресурс находится в оперативном режиме, и текущий процесс имеет разрешение на доступ к общему ресурсу.
CI конвейер 1
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=True /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'DemoConsoleApp'
publishLocation: 'Container'
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=True /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'DemoConsoleApp'
publishLocation: 'Container'
*Трубопровод 1027 * CI 2
pool:
name: Azure Pipelines
demands:
- msbuild
- visualstudio
steps:
- task: NuGetToolInstaller@0
displayName: 'Use NuGet 4.4.1'
inputs:
versionSpec: 4.4.1
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(Parameters.solution)'
vstsFeed: '622d44e2-69d4-4d42-bb91-9d6ddd97f9ba/8eaf9077-829d-4567-93c0-8e0d7973634b'
- task: VSBuild@1
displayName: 'Build solution **\*.sln'
inputs:
solution: '$(Parameters.solution)'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
- task: PublishSymbols@2
displayName: 'Publish symbols path'
inputs:
SearchPattern: '**\bin\**\*.pdb'
PublishSymbols: false
continueOnError: true
- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**\bin\$(BuildConfiguration)\**'
TargetFolder: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
- task: CopyFiles@2
displayName: 'Copy Files Task'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**/**'
TargetFolder: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
- task: ArchiveFiles@2
displayName: 'Archive $(Build.BinariesDirectory)'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: DemoConsoleApp'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: DemoConsoleApp