通过TeamCity实现ASP.NET Core Web Application的自动编译及发布

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过TeamCity实现ASP.NET Core Web Application的自动编译及发布相关的知识,希望对你有一定的参考价值。

下载

  1. TeamCity,当前版本:2017.1
  2. TeamCity插件:.NET Core Support
  3. .NET Core SDK,当前版本:1.0.1

安装

安装TeamCity。需要注意的地方:

  1. 安装路径
  2. 端口,这里是9080
  3. 安装Server和Agent Windows 服务的账号(这里建议使用系统账号而不是用户账号)

技术分享

 

安装完成后会自动打开TeamCity的页面,开始初始化配置。数据目录,数据库和管理用用户。

技术分享

技术分享

技术分享

安装TeamCity插件:.NET Core Support。

安装插件有两种方式,详细内容可以参考《Installing Additional Plugins》。这里简单介绍一下文件拷贝的方式。

  1. 找到插件文件夹,这里是:C:\\ProgramData\\JetBrains\\TeamCity\\plugins
  2. 将下载好的插件文件(dotnet-core-plugin.zip)拷贝进去,注意不要修改文件名。
  3. 重启TeamCity服务,刷新TeamCity页面,此时TeamCity会自动安装插件。
  4. 插件安装完成后可以到Administration->Plugins List页面中查看插件是否被正确安装。

技术分享

安装.NET Core SDK。技术分享

配置

接下来要通过配置TeamCity,完成将Web Application自动编译、发布的流程。

  1. 创建Project。Administration->Projects->Create Project技术分享
  2. 按照实际情况,配置VCS。技术分享
  3. 创建项目。技术分享
  4. 因为安装了.net core的TeamCity插件,所以几个关键的build过程会被自动检查出来。这里只需要前两个,也就是restore和publish。技术分享
  5. 修改发布。这里只修改了Configuration和Output directory技术分享
  6. 保存。到这里最基本的自动发布流程已经完成。已经可以运行。技术分享技术分享

完善

接下来,我会根据一些实际情况,对TeamCity的配置进行一步完善。

  1. 当asp.net core web application寄宿在IIS中的时候,运行上述的流程可能会出现无法拷贝文件的问题。要解决这个问题有两种方式:
    1. 发布前停止IIS服务,发布完成后启动IIS服务。添加两个命令行Step。
      1. net start w3svc
      2. net stop w3svc
    2. 发布前停止站点,发布后启动站点
      1. "C:\\Windows\\System32\\inetsrv\\appcmd" start sites "name"
      2. "C:\\Windows\\System32\\inetsrv\\appcmd" stop sites "name"
  2.     

 

以上是关于通过TeamCity实现ASP.NET Core Web Application的自动编译及发布的主要内容,如果未能解决你的问题,请参考以下文章

Workflow Core + asp.net core 5.0 实现简单审批工作流

ASP.NET Core 中如何通过 AuthorizeAttribute 做自定义验证?

[Asp.Net Core]FilterFactory扩展定制

在 ASP.NET Core 中使用托管服务实现后台任务

[Asp.Net Core]Autofac抽象多实现的问题

[Asp.Net Core]Autofac抽象多实现的问题