ASP.NET Core应用程序作为Windows Service CI / CD管道

时间:2018-11-26 18:20:22

标签: asp.net-core azure-devops

我有一个配置为Windows Service的ASP.NET Core应用程序。

我需要在Windows计算机上使用VSTS管道来部署我的应用程序,但无法找到如何使用Windows服务来实现此功能。

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

首先,您需要一个构建管道,该构建管道将已构建的代码发出到程序包中(即,.NET核心任务来获取依赖关系,构建代码并发布代码。此代码应放置在$(Build.ArtifactStagingDirectory)中所有这些都是从现成的模板中几乎完全是标准.NET核心构建管道的内容。除此之外,您还需要执行复制任务,该任务将复制一个或多个Powershell文件(我将稍后再讨论)放入$(Build.ArtifactStagingDirectory)。

这是将要进行部署的发布管道,您将需要做一些不同的事情,因为我不知道任何市场任务能真正在这里为您提供帮助。在发布管道中,我们真正需要做的是创建一个部署,该部署遵循本文档(https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1)中的某些步骤(4-7),因为它详细介绍了安装ASP.NET Windows Service的步骤。

我在这里建议的是,您用一个或几个Powershell脚本编写步骤4-7,并将它们提交到您的代码库中,并通过我前面提到的复制任务来处理它们。

在该版本中,它将从您的构建工件中下载已发布的服务代码和部署该服务所需的powershell文件。然后,所有发布管道所需要做的就是将服务exe代码复制到服务部署目录中(在示例步骤中,它使用c:\​​ svc,因此将文件复制到此处)。然后,简单地在上述脚本上执行一个或多个powershell任务,以便代理运行这些步骤以正确安装服务。

以上假设使用要部署到的服务器本地安装的专用管道代理。如果要将相同的服务部署到许多服务器,则应查看发布管道的部署组,但是以上步骤应全部相同。仅与部署组阶段(而不是通常的代理阶段)中的所有任务有关。

希望有帮助。