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

时间:2016-02-13 21:23:29

标签: azure-devops azure-web-sites azure-webjobs azure-pipelines

我必须在同一个网站上找到一个网站和一个webjob项目:

  • Sritt(网站)
  • Sritt.Webjob

Sritt的属性中,webjobs-list.json具有以下设置:

"WebJobs": [
    {
      "filePath": "../Sritt.WebJob/Sritt.WebJob.csproj"
    }

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

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

在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]

以下错误:

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.  

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

2 个答案:

答案 0 :(得分:24)

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

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

答案 1 :(得分:1)

该错误与WebJob的发布无关,而与发布Azure Scheduler更改有关。通常,已知msbuild中的Azure Schedule配置存在问题,不再推荐使用。

相反,建议的方法是使用新的基于WebJobs cron的计划,该计划没有这些问题。有关设置此功能的详细信息,请参阅documentation