笔者在《》一文中提到 "TeamCity 内置支持几乎所有的 build 类型"。在当今这个软件语言和各种框架飞速发展的时代,要想支持所有的 build 类型显然是不可能的。比如 TeamCity 就没有内置对 .NET Core build 类型的支持,所以我们在《》一文中使用了 Command Line 类型(command line 类型可以搞定一切!),然后在脚本里手动调用了编译命令:
dotnet restoredotnet build
最近,TeamCity 官方通过插件支持了 .NET Core build(Build, test and deploy .NET Core projects with TeamCity)。既然可以用更加优雅的方式来编译 .NET Core 程序了就让我们一起试试吧!
安装插件
请从 下载插件。
以管理员权限进入 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: