笔者在《TeamCity : 配置 Build 过程》一文中提到 "TeamCity 内置支持几乎所有的 build 类型"。在当今这个软件语言和各种框架飞速发展的时代,要想支持所有的 build 类型显然是不可能的。比如 TeamCity 就没有内置对 .NET Core build 类型的支持,所以我们在《TeamCity : 配置第一个工程》一文中使用了 Command Line 类型(command line 类型可以搞定一切!),然后在脚本里手动调用了编译命令:
dotnet restore dotnet build
最近,TeamCity 官方通过插件支持了 .NET Core build(Build, test and deploy .NET Core projects with TeamCity)。既然可以用更加优雅的方式来编译 .NET Core 程序了就让我们一起试试吧!
安装插件
请从 .NET Core Support 下载插件。
以管理员权限进入 Plugins List 页面,点击上方的 "Upload plugin zip":
然后选择上传已下载的插件:
上传完成后,文件会被放在服务器上的 plugins 目录下:
接下来需要重启 TeamCity 服务,然后就能看到新安装的插件了:
现在我们再去创建一个 build 步骤,就可以选择 Runner type 为 ".NET Core (dotnet)" 了:
.NET Core 插件支持的命令有:build, pack, publish, restore, test。下面我们将详细介绍如何配置这些不同的命令类型。
Restore
下载项目依赖的包。这个命令有很多的参数,比如您可以指定为哪个项目下载包,也可以指定从哪个源进行下载或者是把下载到的包放在哪个路径下。如果 UI 中没有您要的设置,您还可以指定一个命令行参数:
通过命令行参数您就可以无所不能了!
Build
编译项目,允许您指定 framework,runtime 等信息。当然也可以指定编译完成后的输出目录,还有万能的命令行参数!
Test
使用 xUnit framework 能够轻松的在 TeamCity 中集成您的 .NET Core 单元测试。要运行项目中的单元测试,参数的设置和其它命令差不多,下面是单元测试的结果:
Pack
要想把项目发布到 NuGet,首先要生成 NuGet 包。直接使用 Pack 命令就可以了,它会把项目打包成带有 nupkg 后缀的包:
Publish
Publish 命令把应用程序及其所有依赖项打包到文件夹,准备进行发布。它会编译应用程序,读取 project.json 文件中指定的所有依赖项并将生成的文件集发布到目录中。
根据可移植应用的类型,生成的目录包含以下内容:
1. 可移植应用程序 – 应用程序的中间语言(IL) 代码和应用程序的所有托管依赖项。
2. 独立应用程序 – 除上述内容外,还包括目标平台的完整运行时。
需要注意的是一定要为 publish 指定 Framework 和 Runtime: