使用 Azure DevOps CICD 管道将旧版 .net 框架控制台应用程序部署到本地服务器

sap*_*aps 6 pipeline console-application azure-devops azure-pipelines

我是 DevOps 和 CICD 管道的新手。
我使用 Azure DevOps CICD 管道成功将 ASP .NET MVC 网站部署到使用 Azure DevOps 的本地代理/计算机。

同样,我想部署一个控制台应用程序,该应用程序最终可以用作 Windows“任务计划程序”中的计划作业或用作“Windows 服务”。目前,我正在手动管理这些部署,但在看到 DevOps 的强大功能后,我希望控制台应用程序也能真正找到一些自动化解决方案。

这些应用程序是在 3.5 到 4.5 等旧框架中构建的,因此不是 .net core 应用程序。 我发现很多在线文章演示了在 azure 上部署 webjobs 或可能适用于 onprem,但旧的控制台应用程序是否可行?

我尝试在 Framework 4.7 中构建一个非常简单的控制台应用程序,并尝试部署/复制/发布到我的本地计算机的共享路径。向正在运行的 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'
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

部署组-机器

Nic*_*aid 1

如果您为代理使用代理池“Azure Pipelines”,则部署将发生在天蓝色云计算机上,该计算机对您的本地计算机一无所知。

在此输入图像描述

您应该在本地安装一个自托管代理,并将其链接到您的 DevOps 并将其用于代理。

https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops