【问题标题】:Can't deploy correct website from multi project solution using Git deployment to Azure无法使用 Git 部署将正确的网站从多项目解决方案部署到 Azure
【发布时间】:2014-02-25 17:01:07
【问题描述】:

我有一个解决方案,它有一个依赖于解决方案中的另一个项目 (WebAppCore) 的 mvc 网站 (WebApplication1)。源代码托管在 Visual Studio Online 上的 git 中。我配置了一个持续集成。一切都很好,但是当部署发生时,它会部署 WebAppCore。据我了解,这是预期的行为,因为这是解决方案中的第一个项目。我希望它部署 WebApplication1。

我的问题似乎与此相同: Azure websites deploy specific web project

该问题的解决方案是转到 azure 网站配置页面并添加项目的应用程序设置,并为其提供我要部署的项目的 repo 根相对路径。在我的情况下是:

项目:WebApplication1\WebApplication1\WebApplication1.csproj

该设置似乎不起作用。我已经尝试了许多其他项目路径组合,但似乎都没有。

这里有更多细节:

  • Visual Studio 2013
  • Visual Studio 在线
  • 托管的 git 构建过程
  • 模板为 GitContinuousDeploymentTemplate.12.xaml

在模板进程设置中:

  • Build\Projects 设置为解决方案
  • Deployment\Windows Azure 部署环境是我的天蓝色网站。

疑难解答 1 由于这些都是测试项目,所以当我删除 WebAppCore 时,WebApplication1 现在是解决方案中唯一的项目,并且部署良好。

疑难解答 2 即使这不是我想要的修复,我还是决定尝试使用此处描述的 .deployment 文件(尽管本文还提到了使用项目应用程序设置): How can I use the TFS Online <--> Azure Website integration when there are two web apps in the solution

这也不起作用

【问题讨论】:

  • 您的 .deployment 文件位于何处?它需要位于存储库的根目录中,是这样吗?
  • Cory 在这里很可能是正确的。生成部署脚本是值得练习的。这将使您深入了解部署过程中发生的情况,并且您可以对其进行检测以在流程执行时查看更多信息
  • @SyntaxC4 .deployment 文件被放置在 repo 的根目录中。我意识到了这一点。但问得好。
  • @DennisBurton 如何生成部署脚本?我很想更深入地了解部署过程。
  • 我使用跨平台命令行 (windowsazure.com/en-us/documentation/articles/xplat-cli) azure site deploymentscript --WAP (projectfile) 生成部署脚本。 @SyntaxC4 是 Cory,他在 Azure 附近已经很长时间了。

标签: git azure azure-web-app-service azure-devops


【解决方案1】:

我在另一个论坛上收到了来自 Microsoft 的评论,并认为我会在此处添加它,因为它原来是答案:

当前构建从 VSO 到 Azure 的 CI 的定义将在该解决方案中按字母顺序部署第一个 Web 应用程序。如果您有要部署的特定 Web 应用程序,则需要创建一个仅包含该 Web 应用程序的解决方案。 azure 门户中的设置向导最好根据您的团队项目中只有 1 个解决方案和解决方案中只有 1 个网站的简单约定为您设置所有内容。这是我们希望在未来解决的问题,以便为用户提供更大的灵活性和控制力。

链接 http://social.msdn.microsoft.com/Forums/windowsazure/en-US/95f161f6-9370-43ad-9ac5-714f8978cc5e/continuous-integration-deploying-wrong-project-from-solution?forum=azuregit

【讨论】:

  • 将此标记为答案,因为我指向另一个门户的链接确实是答案。我在另一个论坛上评论了发生的事情。谢谢
【解决方案2】:

我想出了一个我认为应该适合您的解决方法。在这里写了一篇关于它的博客文章:

http://peter.orneholm.com/post/84647111808/deploy-to-multiple-azure-websites-with-visual-studio

TD;DR: 创建多个解决方案配置并仅构建您要部署的项目。然后将构建与正确的构建配置相关联。

【讨论】:

  • 嗨彼得,我读了你的博文。我认为您的解决方案是一个聪明的解决方案。但是,对于我的情况,它不起作用。原因是我的解决方案中的两个项目具有依赖性。换句话说,项目 1 依赖于项目 2(尽管项目 2 不依赖于项目 1)。我需要部署项目 1。所以如果我按照您的建议,简而言之就是不构建项目 2,那么项目 1 将无法构建。如果你觉得我误解了什么,请告诉我。谢谢
  • 这就像一个魅力。我不知道 user2800795 指的是什么场景,因为您不应该让网站应用程序在 VS 中对解决方案中的其他网站应用程序有直接的强引用。基本上我现在可以在 1 个解决方案中拥有许多 azure 网站,等待大约 10 分钟,它们就会部署到我在 azure 上的暂存槽。附带说明:这仅适用于标准层及以上。在门户中创建 2 个 azure 网站,为每个网站创建登台槽,将您的单个 VSO 团队解决方案与每个登台槽相关联。在 Team Explr 中,选择构建。您应该看到两个构建定义都可以编辑。
【解决方案3】:

或者在 Azure 的 App Settings 下设置 Project 属性。

见:Azure websites deploy specific web project

【讨论】:

    猜你喜欢
    • 2016-05-17
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2015-08-04
    相关资源
    最近更新 更多