VSO未使用WebJob部署Azure网站

VSO未使用WebJob部署Azure网站,azure,deployment,continuous-integration,azure-devops,azure-webjobs,Azure,Deployment,Continuous Integration,Azure Devops,Azure Webjobs,未将webjob部署到Azure的网站 我在通过Visual Studio Online使用连续部署来部署带有关联webjob控制台应用程序的网站时遇到问题。我正在使用VS2013和更新4以及最新的Azure SDK 该网站以及相关的webjob将使用direct publish for Visual Studio发布到Azure,并且工作非常完美,因此我相信发布设置很好 解决方案将在本地构建并运行良好 该解决方案一旦签入,将在VSO中(使用CI)构建和(似乎)部署良好,Azure注意到构建成

未将webjob部署到Azure的网站

我在通过Visual Studio Online使用连续部署来部署带有关联webjob控制台应用程序的网站时遇到问题。我正在使用VS2013和更新4以及最新的Azure SDK

  • 该网站以及相关的webjob将使用direct publish for Visual Studio发布到Azure,并且工作非常完美,因此我相信发布设置很好

  • 解决方案将在本地构建并运行良好

  • 该解决方案一旦签入,将在VSO中(使用CI)构建和(似乎)部署良好,Azure注意到构建成功并显示为“主动部署”

但是,网站和相关的webjob将不会更新。
当我在Azure上构建和部署VSO后浏览部署的文件时,所发生的一切就是控制台应用程序的二进制文件被复制到网站的bin/文件夹中。
没有任何网站文件正在更新。这几乎就像是部署了错误的项目

如果我删除Webjob并只部署网站,它将通过VSO构建和部署良好-网站将更新

添加webjob会导致通过VSO进行部署时出现一些问题。
我相信将webjob添加到WebApp的所有步骤都是正确的,将正确的webjobs-list.json添加到WebApp,并将webjob-publish-settings.json添加到控制台应用-正如我所说,将网站(使用webjob)直接发布到Azure非常有效,并且网站和webjob都会得到更新

我搜索了一个又一个帖子,尝试了各种方法,但都没有成功。
鉴于这篇文章是由VS直接发布的,而且构建正在完成,这将表明VSO构建定义有问题。
我的第一个猜测是将其从构建解决方案改为仅构建web项目,但这似乎不起作用。
我还尝试了每个输出位置设置(包括解决方案生成和web项目生成)-唯一有效且生成完成的是设置了“SingleFolder”的解决方案(.sln)生成


我已经为此奋斗了几天了,现在我有点不知所措了

如果您通过VSO使用Visual Studio解决方案部署了一个静态网站,并且该解决方案具有自动生成功能,则也会发生这种情况-除非包含该网站的Visual Studio项目/解决方案发生更改,否则实际的网站内容将不会重新部署。

我认为您的直觉是,它部署了错误的项目。如果您的解决方案中有多个“可部署”项目(并且console应用程序被认为是可部署的,因为这是托管/部署webjob的一种方式),那么您需要告诉Kudu要部署哪个项目

您可以在Web应用的“配置”选项卡上的“应用设置”下添加新设置来控制它。
您需要的设置是
Project
,它是从解决方案根目录到web项目的.csproj文件的相对路径

或者,您可以在自定义.deployment文件中指定该设置

从文件中:

可以指定项目文件的完整路径。请注意,这不是解决方案文件(.sln)的路径,而是项目文件(.csproj/.vbproj)的路径。原因是Kudu只为这个项目构建了最小的依赖关系树,并避免在解决方案中构建web项目不需要的无关项目

以下是一个例子:

[配置] project=WebProject/WebProject.csproj

我还尝试了每个输出位置设置(包括解决方案生成和web项目生成)-唯一有效且生成完成的是设置了“SingleFolder”的解决方案(.sln)生成

这就是问题的根源所在。 您不能使用SingleFolder,因为它设置了OutDir,这会导致web作业打包混乱

我必须在我的每个web应用程序项目中引入一个wpp.targets文件,以创建到特定路径的发布包(使用PackageLocation)

因此,让每个项目都具有该属性,并将设置设置为AsConfigured(或Per project),而不是SingleFolder


请参见

谢谢您的帮助-我想可能就是这样。然而,我认为这只适用于GIT存储库(因此通过kudu),但我在VSO中使用TFS。我试过你说的,但没用。我可能需要将我的源代码管理更改为GIT存储库,因为我认为TFS可能不支持这一点。您是正确的,它将只在GIT-TFS源代码管理版本中起作用。请使用传统ms版本和web deploy将位获取到azure。如果您对git/kudu路线感兴趣,但不想离开VSO,您可以尝试本文末尾概述的步骤,关于在azure中使用本地git repo:。至于最初的问题,这里有一些关于CI构建工作的东西(包括注释):如果不工作,在添加webjobs发布内容的更新之前-我有另一种方法可以工作-向您的webapp项目添加一个后期生成命令,该命令将webjob项目的编译输出复制到webapp下的正确文件夹中刚刚偶然发现您的问题。我也有同样的问题,甚至把我自己的问题发到了