使用新的VSO构建代理为vNext应用程序设置CD

时间:2015-08-06 09:56:46

标签: asp.net-core azure-devops azure-pipelines

我正在尝试使用新的Visual Studio Online构建代理为我的vNext应用程序设置持续部署。

请注意:我已从源代码管理中排除/wwwroot文件夹。 'default` Grunt处理所有CSS + JS连接+缩小并将其放入文件夹。我为此任务设置了预构建绑定,因此您只需右键单击 - 发布应用程序即可。这很好,因为发布将执行构建 - 这会触发Grunt任务来准备分发。

但是 - VSO构建代理似乎没有触发Grunt任务。因此,构建服务器没有任何/wwwroot内容,因此部署不起作用。

我该如何解决这个问题?或者 - 我应该在源代码管理中包含/wwwroot文件夹吗?

1 个答案:

答案 0 :(得分:2)

经过一整天的解决 - 我得到了解决方案。但是,我担心这只是一个临时解决方案。一旦新的VSO构建任务发布,这将更加容易。

这就是我的所作所为:

  1. 我首先将最新版本的Node安装到构建服务器上,这似乎可以加快速度并消除一些奇怪的警告。另外 - 我更新了最新版本的构建代理(see bottom of this page how)。检查节点是否在路径中并全局安装bower and grunt(npm install -g bowernpm install -g grunt-cli

  2. 然后我在Visual Studio在线开始使用新的构建模板,正确设置Git绑定并添加第一步:NPM安装(添加一步 - 选择' NPM安装') 。将工作目录设置为.xproj

  3. 的文件夹
  4. 下一步:添加' Grunt版本'步。将它指向您的Gruntfile.js +设置工作目录到同一目录。我正在运行grunt任务build,因为它带有yeoman模板。我修改了所以它将所有内容输出到/wwwroot文件夹。

  5. 添加构建项目位的Visual Studio Build' -step。添加参数/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation=\"$(build.stagingDirectory)\"

  6. 所以,这几乎都是开箱即用的'。接下来的步骤(打包app +部署它)不是。我怀疑将来我们会有很好的VSO构建任务,这将使这很容易做到。我不得不乱用命令行。 然而,事实证明我很容易。如果从Visual Studio设置发布 - 您可以在输出窗口中看到它运行的命令。您希望在2个命令步骤中重新创建这些命令。

    1. 为命令C:\Users\Administrator\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta6\bin\dnu.cmd添加命令行步骤。是的 - 它现在已经连接到DNX运行时 - 因此它不是最佳的。但我们需要DNX实用程序来打包我们的应用程序 - 因此命令参数: publish --out $(build.stagingDirectory) --configuration Release --wwwroot-out "wwwroot" --runtime dnx-clr-win-x86.1.0.0-beta6(再次 - 只是从VS的输出窗口复制了它)
    2. 这样可以很好地将应用程序打包到$(build.stagingDirectory)文件夹中。 接下来 - 在云中加入。

      1. 添加最终的命令行'使用命令执行:C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe和参数-source:IisApp='$(build.stagingDirectory)\wwwroot' -dest:IisApp='--something--',ComputerName='https://--something--.scm.azurewebsites.net/msdeploy.axd',UserName='$--something--',Password='--notsaying--',IncludeAcls='False',AuthType='Basic' -verb:sync -enableLink:contentLibExtension -retryAttempts:2
      2. 注意:这假定您已设置发布到网站。转到Azure门户 - 到您的Azure网站 - 并设置发布。下载发布配置文件XML文件,您将在其中找到这些参数。此外 - 所有参数都写在Visual Studio输出窗口中(密码除外)。

        这对我现在很有用:使用新的Visual Studio Online(VSO)构建代理继续部署vNext / ASP.NET 5 Web应用程序。

        Build overview