通过TeamCity实现ASP.NET Core Web Application的自动编译及发布
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过TeamCity实现ASP.NET Core Web Application的自动编译及发布相关的知识,希望对你有一定的参考价值。
下载
- TeamCity,当前版本:2017.1
- TeamCity插件:.NET Core Support
- .NET Core SDK,当前版本:1.0.1
安装
安装TeamCity。需要注意的地方:
- 安装路径
- 端口,这里是9080
- 安装Server和Agent Windows 服务的账号(这里建议使用系统账号而不是用户账号)
安装完成后会自动打开TeamCity的页面,开始初始化配置。数据目录,数据库和管理用用户。
安装TeamCity插件:.NET Core Support。
安装插件有两种方式,详细内容可以参考《Installing Additional Plugins》。这里简单介绍一下文件拷贝的方式。
- 找到插件文件夹,这里是:C:\\ProgramData\\JetBrains\\TeamCity\\plugins
- 将下载好的插件文件(dotnet-core-plugin.zip)拷贝进去,注意不要修改文件名。
- 重启TeamCity服务,刷新TeamCity页面,此时TeamCity会自动安装插件。
- 插件安装完成后可以到Administration->Plugins List页面中查看插件是否被正确安装。
安装.NET Core SDK。
配置
接下来要通过配置TeamCity,完成将Web Application自动编译、发布的流程。
- 创建Project。Administration->Projects->Create Project
- 按照实际情况,配置VCS。
- 创建项目。
- 因为安装了.net core的TeamCity插件,所以几个关键的build过程会被自动检查出来。这里只需要前两个,也就是restore和publish。
- 修改发布。这里只修改了Configuration和Output directory
- 保存。到这里最基本的自动发布流程已经完成。已经可以运行。
完善
接下来,我会根据一些实际情况,对TeamCity的配置进行一步完善。
- 当asp.net core web application寄宿在IIS中的时候,运行上述的流程可能会出现无法拷贝文件的问题。要解决这个问题有两种方式:
- 发布前停止IIS服务,发布完成后启动IIS服务。添加两个命令行Step。
- net start w3svc
- net stop w3svc
- 发布前停止站点,发布后启动站点
- "C:\\Windows\\System32\\inetsrv\\appcmd" start sites "name"
- "C:\\Windows\\System32\\inetsrv\\appcmd" stop sites "name"
- 发布前停止IIS服务,发布完成后启动IIS服务。添加两个命令行Step。
以上是关于通过TeamCity实现ASP.NET Core Web Application的自动编译及发布的主要内容,如果未能解决你的问题,请参考以下文章
Workflow Core + asp.net core 5.0 实现简单审批工作流
ASP.NET Core 中如何通过 AuthorizeAttribute 做自定义验证?