Azure网站中的项目中不存在目标“ResolveWebJobFiles”

时间:2015-04-09 11:55:44

标签: c# asp.net azure msbuild azure-webjobs

我有一个由

组成的Windows Azure项目
  • ASP.NET项目(使用NancyFX)部署为Azure网站
  • 业务逻辑类库
  • 单元测试类库
  • 2个控制台应用

我希望将这两个控制台应用程序与Azure网站一起部署为Azure WebJobs。所以我在ASP.NET项目上选择了clikec并选择了Add |现有项目为Azure WebJob,并添加了具有正确计划的两个控制台应用程序。

一切似乎都很好,2个控制台应用程序现在包含一个带有计划的JSON,ASP.NET项目包含一个带有WebJobs定义的JSON。所有的项目都很好。

问题是,当我尝试将ASP.NET项目部署到Azure时,我得到了

The target “ResolveWebJobFiles” does not exist in the project

当作者通过添加

解决了这个问题时,我找到了this article
<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')" />

到他的csproj文件,但是我的ASP.NET项目的csproj文件已经包含了这个导入。

任何想法是什么问题?

9 个答案:

答案 0 :(得分:29)

即使我遇到这个问题。我在我的webjob中重新安装了以下软件包来解决它

package id =&#34; Microsoft.Web.WebJobs.Publish&#34;版本=&#34; 1.0.2&#34;

答案 1 :(得分:6)

一个主要原因可能是缺少“属性”中的“webjob-publish-settings.json”文件。

请仔细检查此文件是否存在并包含在您的项目中。

答案 2 :(得分:4)

检查您的webjob项目属性文件夹中是否包含此文件: webjob-发布 - settings.json

如果没有,请使用此内容创建它,仅更改webJobName(现在)

{
  "$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
  "webJobName": "MyWebJobName",
  "startTime": "2014-12-09T00:00:00-08:00",
  "jobRecurrenceFrequency": "Hour",
  "interval": 1,
  "runMode": "Scheduled",
  "stopping_wait_time": 3600
}

答案 3 :(得分:4)

在我的情况下是这个文件,其中有1个与之关联的无效webjob,将其删除并开始工作

<强> webjobs-list.json

答案 4 :(得分:3)

我也碰到了这个。更新我的解决方案中的所有包后,我开始得到这个。 lock.wait(); 就在那里,但它正在考虑使用不同的版本。所以也要检查一下。

答案 5 :(得分:1)

我最近收到了这个错误,发现原因是[WebProject] /Properties/webjobs-list.json包含对已从解决方案中删除的旧webjob的引用。从json删除引用修复了问题。

答案 6 :(得分:1)

the documentation

中所述
  

启用WebJobs的项目添加了以下项目:
   - Microsoft.Web.WebJobs.Publish NuGet包。
   - 包含部署和调度程序设置的webjob-publish-settings.json文件。

它清楚地表明需要引用Microsoft.Web.WebJobs.Publish Nuget包的项目是启用Webjob的项目应用程序,而不是Web应用程序。 Web应用程序只需要webjobs-list.json个文件。

webjob控制台应用程序也可能有webjob-publish-settings.json个文件 但仅限于非连续工作

答案 7 :(得分:0)

另外值得一试的是WebJob项目的.net版本与您的Web应用程序的对比!

答案 8 :(得分:0)

在 Kudu 中(在 Web 应用程序管理页面上的“高级工具”下的“开发工具”下),在“调试控制台”下,选择“Powershell”,然后导航到“站点”文件夹,然后是“存储库”文件夹。

在命令行输入命令“dotnet restore”,然后重新部署。