VSTS 部署到非 Azure 云平台

VSTS deploy to non-Azure cloud platform

我目前有一个 ASP.NET 带有 EF 的核心 Web 应用程序,我正在使用直接来自Visual Studio。我希望通过 VSTS 进行 CI/CD 设置,以便发布能力不限于一台机器。

到目前为止,我已经设置了构建阶段,因为 .NET Core 模板是真正需要的。这是让我陷入困境的部署部分——我能找到的所有与 .NET Core 相关的模板(实际上是文章)都集中在 Azure 或 IIS 部署上,这两者都不适用于此处,而且 Azure 实际上使用部署专门为其创建的任务。

如果相关,GearHost 会提供 FTP 可能用于手动复制的凭据。或者,有什么方法可以使用 VS2017 发布配置文件来创建发布定义,包括 appsettings.json 转换和 EF 迁移?

有多种方法可以将应用程序部署到 GearHost 服务器,例如FTP、发布配置文件。

因此,您可以使用 FTP Upload task.

将发布的文件(例如使用文件系统发布方法创建发布配置文件)上传到 GearHost 服务器

您也可以 download the publish profile with Web Deploy method and import to VS,然后使用此发布配置文件部署应用程序。 (MSBuild 参数:/p:DeployOnBuild=true /p:PublishProfile=[publish profile file name]

关于appsettings.json转换,你不需要转换appsettings.json文件,.net核心项目可以从appsettings.[environment].json文件中检索每个值到ASPNETCORE_ENVIRONMENT系统环境变量。 Working with multiple environments

关于 EF 迁移,您可以在发布配置文件和具有该发布配置文件的 publish/deploy 应用程序中进行配置。

更新:

调用 GearHost cloudsite 的步骤:

  1. 登录GearHost
  2. 单击 API 选项卡 > 创建一个新的 API 密钥
  3. 使用 Invoke-RestMethod

简单代码:

$url="https://api.gearhost.com/v1/cloudsites/[could site id]/stop"
 $APIID="[step 2]"
 $result=Invoke-RestMethod -Method POST -Uri $url -Headers @{Authorization=("bearer {0}" -f $APIID)} -ContentType "application/json"