【问题标题】:Visual Studio, ASP.NET 4.5, Bower, Gulp, VSTS and Azure Deploy, end-to-endVisual Studio、ASP.NET 4.5、Bower、Gulp、VSTS 和 Azure Deploy,端到端
【发布时间】:2016-09-18 10:53:16
【问题描述】:

我正在开发一个 ASP.NET 4.5 Web 项目(不是 ASP.NET Core/5),并致力于采用 NPM、Gulp、Bower 等方式在职的。不过,我遇到的问题是这些新工具与 VSTS(TFS Online)和 Azure 构建 + 部署的交集。

这是我得到的:

  • 一个 ASP.NET 4.5 Web 项目,包括 NPM(用于 Gulp 等开发依赖项)、Bower(用于 Angular 等客户端库依赖项)和 Gulp(用于 JS 缩小等 Web 构建内容)。
  • 一个 VSTS 构建任务(不是旧的 XAML 类型),使用 NPM taskGulp taskAzure Web App Deployment task

我面临的挑战是,并非 NPM、Bower 和 Gulp 任务的所有结果都对 Azure Web 应用部署任务产生影响。我预计这是因为由 build task 创建并由 Azure Web 应用部署任务使用的 Web 部署包没有考虑到 NPM、Bower 和 Gulp 所做的所有更改。

例如,Bower 依赖项将被带到 bower_components 文件夹,我将在 Gulp 任务中使用 bower-installer 将这些文件的子集复制到 lib 文件夹。但由于 lib 文件夹(以及其中的文件)未包含在 Visual Studio 项目文件中,因此构建步骤不会将它们添加到部署包中。

我可以想出几种方法来解决这个问题,但我对其中任何一种都不是特别兴奋。他们中的大多数人感觉像是“逆流而上”或有其他缺点,这让我想知道我是否错过了一些东西。选项:

  1. 在 Visual Studio 项目中“包含”输出 NPM、Bower 和 Gulp。例如。包括bower_componentslib 文件夹。不过,我觉得这消除了包管理的很多好处,因为我将有明确的包含。我也不喜欢在项目中包含有效构建的输出(例如 Gulp 任务结果),它旨在表示
  2. 跳过障碍,让 Web 部署包选择性地包含额外文件,如 here 所述。这绝对感觉就像在上游游泳。由于不同的原因,我在过去的项目中也走这条路,这不是在公园里散步。
  3. 使用其他一些部署技术。 This answer 谈论使用自定义 Kudu 部署脚本。但这似乎比我预期的要定制一些。在我的 Web 应用程序 Kudu 页面上单击“下载部署脚本”时,我也立即遇到了障碍,并出现错误“仅在不使用自定义部署脚本时才支持操作”。

是否有我没有看到的优雅替代方案?我是否只需要硬着头皮选择我上面列出的选项之一?

顺便提一下,使用 ASP.NET Core/5 是否会带来更流畅的体验?因为考虑到对 NPM、Grunt、Gulp、Bower 等的推动,我很惊讶它至少在 ASP.NET 4.5 中被证明是多么尴尬。

【问题讨论】:

标签: visual-studio-2015 gulp bower azure-devops azure-deployment


【解决方案1】:

您还可以使用复制文件任务和FTP Uploader 任务通过Azure FTP Deploy 部署您的网络应用程序。使用此发布方法,您可以从构建定义中控制要发布到 Azure 的文件/文件夹。

【讨论】:

  • 感谢 Eddie,这是选项 #3,“使用其他部署技术”。我没有在其他托管环境中部署 FTP 的激动人心的体验,但我没有在 Azure 中尝试过,所以那里的体验可能会更顺畅。我还是觉得 FTP 部署有点局限,所以宁愿不诉诸于此。
猜你喜欢
  • 2020-11-02
  • 2016-08-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
相关资源
最近更新 更多