ASP.NET Web 部署失败;项目中不存在 AddScheduledJob

ASP.NET Webdeploy failing; AddScheduledJob does not exist in project

我有一个包含两个 WebJobs 的 ASP.NET 项目,其中一个 WebJobs 发布正常,但第二个发布失败,我收到以下错误消息:

目标 "AddScheduledJob" 在项目中不存在。

两个 WebJobs 都设置为 "Run on Demand" 模式。

我正在努力寻找对此错误的任何解释,但看不出我的两个 WebJobs 之间有什么不同。有人遇到过这个吗?

已编辑

感谢 David Ebbo 为我指明了正确的方向,我最终找到了问题所在。我发现我的一个 WebJobs 项目的 .csproj 文件中有两个导入行:

  <Import Project="..\packages\Microsoft.Web.WebJobs.Publish.1.0.2\tools\webjobs.targets" Condition="Exists('..\packages\Microsoft.Web.WebJobs.Publish.1.0.2\tools\webjobs.targets')" />

删除第一个后一切正常。我不知道这是怎么发生的,但只能假设我更新 NuGet 包时出了点问题。

在您的 WebJob 项目中删除 webjob-publish-settings.json 文件,同时从您的 WebAPI 项目中删除 webjobs-list.json。

现在,在 WebAPI 项目中右键单击 > 添加 > 现有项目作为 Azure Web 作业,这将重新创建 webjob-publish-settings.json 和 webjobs-list.json 文件,应该可以解决问题。

当我在 ASP.NET 站点下有现有的 WebJob SDK 项目时,我遇到了类似的问题,我添加了一个新项目。新版本使用的是更新版本的 Microsoft.Web.WebJobs.Publish 软件包。

我使用 "Add Existing Project as Azure WebJob" 流程添加它,然后我注意到 在 ASP.NET 项目 中现在有两个导入:

  <Import Project="..\packages\Microsoft.Web.WebJobs.Publish.1.0.10\tools\webjobs.targets" Condition="Exists('..\packages\Microsoft.Web.WebJobs.Publish.1.0.10\tools\webjobs.targets')" />
  <Import Project="..\packages\Microsoft.Web.WebJobs.Publish.1.1.0\tools\webjobs.targets" Condition="Exists('..\packages\Microsoft.Web.WebJobs.Publish.1.1.0\tools\webjobs.targets')" />

我只是删除了旧版本的导入,这样就解决了。