Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure网站中的项目中不存在目标“ResolveWebJobFiles”_C#_Asp.net_Azure_Msbuild_Azure Webjobs - Fatal编程技术网

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

C# Azure网站中的项目中不存在目标“ResolveWebJobFiles”,c#,asp.net,azure,msbuild,azure-webjobs,C#,Asp.net,Azure,Msbuild,Azure Webjobs,我有一个Windows Azure项目,包括 使用部署为Azure网站的NancyFX的ASP.NET项目 业务逻辑类库 单元测试类库 2个控制台应用程序 我希望这2个控制台应用程序被部署为Azure网站的Azure WebJobs。因此,我在ASP.NET项目上修改了clikec,选择将现有项目添加为Azure WebJob,并以正确的时间表添加了这两个控制台应用程序 一切似乎都很好,2个控制台应用程序现在包含一个带有时间表的JSON,ASP.NET项目包含一个带有WebJobs定义的JSON

我有一个Windows Azure项目,包括

使用部署为Azure网站的NancyFX的ASP.NET项目 业务逻辑类库 单元测试类库 2个控制台应用程序 我希望这2个控制台应用程序被部署为Azure网站的Azure WebJobs。因此,我在ASP.NET项目上修改了clikec,选择将现有项目添加为Azure WebJob,并以正确的时间表添加了这两个控制台应用程序

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

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

The target “ResolveWebJobFiles” does not exist in the project
我发现当作者通过添加

<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文件已包含此导入


你知道问题出在哪里吗?

我也遇到了这个问题。在更新我的解决方案中的所有包之后,我开始得到这个。这本书在那里,但它指向了一个不同的版本。所以也要检查一下。

即使是我也面临着这个问题。我在我的webjob中重新安装了下面的包来解决它


包id=Microsoft.Web.WebJobs.Publish version=1.0.2

检查webjob项目属性文件夹中是否有此文件: webjob-publish-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
}

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

在我的例子中,就是这个文件,它有一个无效的webjob与之关联,删除了它并开始工作


webjobs list.json

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


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

同样值得检查的是WebJob项目的.net版本与您的Web应用程序

如中所述

启用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文件
但仅当Kudu中存在非连续作业时

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


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

检查您的项目是否引用了WebJob程序集Microsoft.Azure.Webjobs+Microsoft.Azure.Webjobs.Host如果没有,您可以使用nuget软件包Microsoft.Azure.Webjobs添加它们Microsoft.Azure.Webjobs从nuget下载Microsoft.Azure.Webjobs软件包,并在更新到后添加WebJobsName问题时自动引用1.0.3对我来说,解决这个问题的方法是在Web作业项目本身(即控制台应用程序)中安装“Microsoft.Web.WebJobs.Publish”Nuget软件包。我已经在ASP.NET项目中安装了这个Nuget包,但它似乎在两个或至少在web作业项目中都需要。谢谢你,伙计!只需在WebJob项目上简单地重新安装、卸载并安装此软件包,即可实现此目的。这可能是由于将WebJob从一个目录移动到另一个目录引起的。@Santosh这很有趣,我只在web应用程序中安装了此程序包,从未在WebJob中安装过,而且我的所有WebJob都与它们关联的web应用程序一起部署。这是我的问题,我的web项目(而不是webjob)中的导入指向了webjob的旧位置如果没有webjob-publish-settings.json,我的连续webjob也无法部署。是的,正是这样。我在其他5份工作中都做过,但没能把它放在这里。