Visual studio 2015 Visual Studio、ASP.NET 4.5、Bower、Gulp、VSTS和Azure部署,端到端

Visual studio 2015 Visual Studio、ASP.NET 4.5、Bower、Gulp、VSTS和Azure部署,端到端,visual-studio-2015,gulp,bower,azure-devops,azure-deployment,Visual Studio 2015,Gulp,Bower,Azure Devops,Azure Deployment,我正在从事一个ASP.NET 4.5 web项目(非ASP.NET核心/5),并致力于采用NPM、Gulp、Bower等工作方式。不过,我有点不顺心,这些新工具与VST(TFS Online)和Azure build+deploy的交叉点 以下是我得到的: 一个ASP.NET4.5Web项目,包括NPM(用于开发依赖项,如Gulp)、Bower(用于客户端库依赖项,如Angular)和Gulp(用于web构建,如JS缩小) VSTS构建任务(不是旧的XAML类型),使用和 我面临的挑战是,并

我正在从事一个ASP.NET 4.5 web项目(ASP.NET核心/5),并致力于采用NPM、Gulp、Bower等工作方式。不过,我有点不顺心,这些新工具与VST(TFS Online)和Azure build+deploy的交叉点

以下是我得到的:

  • 一个ASP.NET4.5Web项目,包括NPM(用于开发依赖项,如Gulp)、Bower(用于客户端库依赖项,如Angular)和Gulp(用于web构建,如JS缩小)
  • VSTS构建任务(不是旧的XAML类型),使用和
我面临的挑战是,并非所有NPM、Bower和Gulp任务的结果都会对Azure Web App部署任务产生影响。我认为这是因为由创建并由Azure Web App部署任务使用的Web部署包没有考虑到NPM、Bower和Gulp所做的所有更改

例如,Bower dependencies将被下放到
Bower\u components
文件夹中,我将在Gulp任务中使用Bower installer将这些文件的子集复制到
lib
文件夹中。但是,由于Visual Studio项目文件中不包括该
lib
文件夹(以及其中的文件),因此构建步骤不会将它们添加到部署包中

我可以想出一些方法来解决这个问题,但我对其中任何一种都不是特别兴奋。他们中的大多数人都想“逆流而上”,或者有其他缺点,这让我怀疑自己是否错过了什么。选项:

  • 在VisualStudio项目中“包括”输出NPM、Bower和Gulp。例如,包括
    bower\u组件
    lib
    文件夹。我觉得这会破坏包管理的许多好处,因为我会有明确的包含。在项目中包含有效的构建输出(例如,吞咽任务结果)也不适合我,因为这意味着表示源代码
  • 跳转,让WebDeploy包有选择地包含额外的文件,如所述。这绝对是一种逆流而上的感觉。在过去的项目中,出于不同的原因,我也走过这条路,这不是在公园里散步
  • 使用其他一些部署技术。讨论如何使用自定义Kudu部署脚本。但这似乎比我预期的更为定制。在我的web apps Kudu页面上单击“下载部署脚本”时,我也立即遇到了一个障碍,错误是“仅在不使用自定义部署脚本的情况下支持操作”
  • 有没有我没有看到的优雅的选择?我是否必须咬紧牙关,接受我上面列出的选择之一


    顺便问一下,使用ASP.NET Core/5这是一种更流畅的体验吗?因为考虑到对NPM、Grunt、Gulp、Bower等的推动,我很惊讶它至少在ASP.NET 4.5中被证明是多么笨拙。

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

    谢谢Eddie,这就是选项3“使用其他部署技术”。我还没有在其他托管环境中使用FTP部署的激动人心的体验,但我还没有在Azure中尝试过,所以在那里可能会更流畅。我仍然觉得FTP部署有点有限,所以我不想求助于此。因此,不幸的是,这似乎是一个“已知”的问题,但没有采取任何措施,最好的答案是打开*proj文件并开始修补。