通过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:
- 启动IIS:net start w3svc
- 停止IIS:net stop w3svc
- 发布前停止IIS服务,发布完成后启动IIS服务。添加两个命令行Step:
- 启动站点:"C:\Windows\System32\inetsrv\appcmd" start sites "name"
- 停止站点:"C:\Windows\System32\inetsrv\appcmd" stop sites "name"
- 删除文件:IF EXIST "D:\Sites\Demo" RD /S /Q "D:\Sites\Demo"
参考