通过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实现ASP.NET Core Web Application的自动编译及发布

 

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

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

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

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

安装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页面中查看插件是否被正确安装。

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

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

配置

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

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

完善

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

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

参考

  1. 《Build, test and deploy .NET Core projects with TeamCity》
  2. TeamCity《Installing Additional Plugins》