0

我尝试通过添加两个 vsBuild 任务为每个项目创建两个不同的 zip。

在编写基于 yaml 的管道时,我面临两个问题:-

  1. 在 webjob 项目路径中,DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\App_Data\jobs\continuous\somethingApp.zip"但没有添加任何内容。

2 当我部署它 azure app 服务时,在部署我的 web 应用程序期间,我面临以下错误:

at ExecState._setResult (D:\a\_tasks\AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1\3.179.0\node_modules\azure-pipelines-task-lib\toolrunner.js:828:25)
    at ExecState.CheckComplete (D:\a\_tasks\AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1\3.179.0\node_modules\azure-pipelines-task-lib\toolrunner.js:811:18)
    at ChildProcess.<anonymous> (D:\a\_tasks\AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1\3.179.0\node_modules\azure-pipelines-task-lib\toolrunner.js:733:19)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:920:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)

因此,尽管 Pipeline 成功完成,但无法部署任何东西。

4

3 回答 3

1

但没有添加任何内容

如果您只是在 vsBuild 任务中添加下面的 MSBuild Arguments,那么它将创建 zip 文件并将输出文件保存在 zip 文件中

/p:WebPublishMethod=Package /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\App_Data\jobs\continuous\somethingApp.zip"
于 2020-11-27T08:11:07.053 回答
1

问题的关键,我觉得应该是路径配置问题,无法访问你的webjob应用。

所以我建议你在门户中创建一个虚拟应用程序。

在此处输入图像描述

更多详细信息,您可以参考此博客。如果您需要进一步的帮助,请告诉我。

如何使用 Azure 应用服务部署任务将 webjob 从 azure devops 发布到 azure 应用服务

于 2020-11-27T06:42:11.263 回答
0

对于应该将 web api 和 webjob .NET CORE项目部署到 azure webapp 服务的情况,基本上有两种可能的解决方案:-

  1. 如果您使用 VSBuild 任务来构建您的解决方案,那么只需构建您的两个项目并为您的可部署 webApi 项目创建 zip 文件,然后在发布您的放置工件之前,确保将 webjob 项目构建文件(.dll 等)复制到artifacttagingDirectory中格式为 'App_Data\jobs\continuous(ortriggered)\yourFiles',然后将您的工件部署到 azure 应用服务。希望这应该有效。

  2. 虽然这样做的另一种方式是,使用 DOTNETCORECLI 任务构建您的 DOTNET Core 项目,请按以下方式执行

    `

  • 任务:DotNetCoreCLI@2 输入:命令:'publish' publishWebProjects:true 参数:'--configuration $(buildConfiguration) --output $(build.artifactStagingDirectory)\yourwebApiProjectName.zip'

    - task: DotNetCoreCLI@2
      inputs:
        command: 'publish'
        publishWebProjects: false
        projects: '**/yourWebJobProjectName.csproj'
        arguments: '--configuration $(buildConfiguration) --output $(build.artifactStagingDirectory)\App_Data\jobs\continuous\yourWebJObName'
        zipAfterPublish: false
        modifyOutputPath: false
    
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'`
    

然后,您可以在您的 azure 应用服务中部署此工件。希望这将解决与在 azure Web 应用服务中部署基于 DOTNET Core 的 webjob 和 webapi 项目相关的问题。

于 2020-12-02T06:53:20.323 回答