首页 文章

VSO没有使用WebJob部署Azure网站

提问于
浏览
4

一个没有部署到Azure的webjob的网站 .

我在使用Visual Studio Online通过持续部署来获取具有关联webjob控制台应用程序的网站时遇到问题 . 我使用VS2013与更新4和最新的Azure SDK .

  • 该网站和相关的webjob将使用Visual Studio的直接发布发布到Azure并且工作正常,因此我确信发布设置很好 .

  • 该解决方案将在本地构建并正常运行 .

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

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

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

它正在添加通过VSO导致部署问题的webjob .
我相信所有步骤都是正确的,将webjob添加到WebApp,将正确的webjobs-list.json添加到webapp并将webjob-publish-settings.json添加到Console应用程序 - 正如我所说,发布网站(带有webjob)直接到Azure工作完美,网站和webjob都得到更新 .

我在帖子后搜索并尝试各种方式,但没有一个有效 .
鉴于这个直接来自VS的发布,以及构建正在完成,这表明VSO Build Defintion出现了问题 .
我的第一个猜测是将其从构建解决方案改为仅改为构建Web项目,但这似乎不起作用 .
我还尝试了每个输出位置设置(用于解决方案构建和Web项目构建) - 唯一有效且构建完成的是使用'SingleFolder' set的解决方案(.sln)构建 .

我已经和我斗争了几天,现在我有点难过了!

3 回答

  • 0

    如果您通过VSO使用Visual Studio解决方案使用自动构建部署静态网站,也会发生这种情况 - 除非更改包含网站的Visual Studio项目/解决方案,否则将不会重新部署实际网站内容 .

  • 0

    我认为你预测它正在部署错误的项目是正确的 . 如果您的解决方案中有多个“可部署”项目(并且控制台应用程序被认为是可部署的,因为这是您可以托管/部署webjob的一种方式),您需要告诉Kudu要部署哪一个 .

    您可以控制它在"configure"选项卡下为webapp添加新设置 .
    您想要的设置是 Project ,它是从解决方案根目录到Web项目的.csproj文件的相对路径 .

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

    Relevant Kudu documentation here

    从文档:

    您可以指定项目文件的完整路径 . 请注意,这不是解决方案文件(.sln)的路径,而是项目文件(.csproj / .vbproj)的路径 . 这样做的原因是Kudu只为该项目构建最小依赖关系树,并避免在解决方案中构建Web项目不需要的不相关项目 . 这是一个例子:[config] project = WebProject / WebProject.csproj

  • 0

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

    这是问题的根本案例 . 您不能使用SingleFolder,因为它设置了与Web作业打包混乱的OutDir .

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

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

    this

相关问题