当前位置: 首页 > 知识库问答 >
问题:

部署传统。使用Azure DevOps CICD管道将. net framework控制台应用程序应用到本地服务器

卜鹏
2023-03-14

我是新来的DevOps和CICD管道。< br >我成功地部署了ASP。NET MVC网站使用Azure DevOps CICD管道到我的onprem代理/机器使用Azure DevOps。

同样,我想部署一个控制台应用程序,它最终可以作为Windows“任务计划程序”中的计划作业使用,也可以作为“Windows服务”使用。现在我正在手动管理这些部署,但在看到运营模式的强大功能后,我希望控制台应用程序也能有一些自动化的解决方案

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

我尝试在Framework 4.7中构建一个非常简单的控制台应用程序,并尝试将其部署/复制/发布到onprem机器的共享路径。向正在运行的VSTS代理服务授予权限,但复制html" target="_blank">文件和发布工件任务失败。我尝试在CI和CD管道中执行此操作,但都失败了。

请检查管道和日志,并建议我哪里做错了,或者有任何替代方案?
https://dev.azure.com/MSTCsandippatel/DemoConsoleApp

2019-11-05t 05:03:52.8436105 z # #[错误]发布生成项目失败,出现错误:无法创建目录“\ Mahan tam \ Azure Artifacts \ DemoConsoleApp”。无法验证目录是否存在:“\ Mahan tam \ 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'

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

共有1个答案

屠杰
2023-03-14

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

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

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

 类似资料:
  • 我使用的是WebLogic10.3.5。当我在eclipse中本地部署Struts2应用程序时,它运行良好。当我试图通过管理控制台部署我的应用程序时,我得到了一个Struts 2错误,name not found for action。 当我看着这张照片的时候。war文件,它有所有的库和类。我按照以下说明通过管理控制台进行部署。我可以通过管理控制台成功地部署,但是当我尝试使用应用程序的测试链接时,

  • pom.xml我有这个用来部署 在设置中。tomcat服务器的xml我有这个 当我试图调用maven deploy时,出现了一个错误: 服务器正在运行。我试图在pom中更改tomcat插件。xml到tomcat7 maven插件,但我得到了相同的错误。据我所知,它正试图将war文件部署到http://localhost:8080/manager/ua/andrfas/SCPI/0.0.1/SCPI

  • 我有一个Java应用程序,可以使用Azure扩展从Eclipse部署到Tomcat8应用程序服务。 我创建了一个构建管道,该管道使用创建工件。战争档案。 然后,我创建了一个发布管道,并设置了一个“将WAR部署到Azure应用程序服务”。管道部署war文件并将其展开,但其他一些配置不正确,因为该应用程序在Tomcat服务器上不可用。 是否有人使用此任务成功部署到Tomcat 8应用程序服务?如果是这

  • 但是当我试图访问上部署的应用程序时,它返回404状态。 那有什么不好?

  • 我正在尝试使用Azure DevOps发布管道将java应用程序部署到tomcat服务器。我在tomcat服务器选项卡中填写了war文件路径、服务器URL信息、用户名和密码,如下所示: 但部署失败,我得到以下错误: 我使用的路径或任何其他信息是否错误?谁能帮我一下吗,谢谢。

  • 我有一个使用tomcat服务器运行的java应用程序。现在我需要在jboss服务器上运行相同的应用程序。我是jboss新手,我尝试过在jboss中部署war文件,但没能做到。 我不知道应用程序要在jboss上运行需要做什么更改。任何人请引导我。 非常感谢。