使用VSO在同一个sln中部署azure网站和webjobs - 错误 - 只能有一个

Lar*_*rsi 11 azure-web-sites azure-webjobs azure-devops azure-pipelines

我有一个网站和一个webjob项目在同一个sln:

  • Sritt(网站)
  • Sritt.Webjob

Sritttheres 属性中webjobs-list.json具有以下设置:

"WebJobs": [
    {
      "filePath": "../Sritt.WebJob/Sritt.WebJob.csproj"
    }
Run Code Online (Sandbox Code Playgroud)

我已经像这样配置了VSTS构建(使用新的构建系统):

Solution: **\*.sln    
MSBuild Args: /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"
Run Code Online (Sandbox Code Playgroud)

在VSTS中构建给我以下警告:

 C:\a\1\s\packages\Microsoft.Web.WebJobs.Publish.1.0.9\tools\webjobs.console.targets(149,5): warning : WebJob schedule for SrittWebJob will not be created. WebJob schedules can only be created when the publish destination is an Azure Website [C:\a\1\s\Sritt.WebJob\Sritt.WebJob.csproj]
Run Code Online (Sandbox Code Playgroud)

并出现以下错误:

packageFile= Find-Files -SearchPattern C:\a\1\a\**\*.zip
packageFile= C:\a\1\a\Sritt.WebJob.zip C:\a\1\a\Sritt.zip
Found more than one file to deploy with search pattern 'C:\a\1\a\**\*.zip'. There can be only one.  
Run Code Online (Sandbox Code Playgroud)

如何部署网站和webjob?我需要将它们分成不同的解决方案吗?

Edd*_*SFT 24

似乎您正在使用"Azure Web App部署"任务来部署项目.您不需要将它们拆分为不同的解决方案,但需要将它们部署在单独的任务中.

因此,您需要在构建定义中再添加一个"Azure Web App部署"任务.除了"Web部署包"部分之外,这两个任务的设置几乎相同:一个是"$(build.artifactstagingdirectory)\**\Sritt.zip",另一个是"$(build.artifactstagingdirectory)\**\Sritt.WebJob.zip".

  • @Larsi顺便说一下,我忘了提一下,如果创建webjobs并将其添加到项目中,您只需要部署项目,webjob应该与项目一起部署. (3认同)