笔者在《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:
TeamCity : .NET Core 插件的更多相关文章
-
nopcommerce 4.1 core 插件 相关1
nop中 插件机制是比较值得学习的: Nop 插件学习: 1. 项目里面的生成必须是采用 直接编辑项目文件,参考nop原本的项目文件 动态加载插件的方法-mvc3 参考: using System.L ...
-
.NET Core中插件式开发实现
前言: 之前在文章- AppDomain实现[插件式]开发 中介绍了在 .NET Framework 中,通过AppDomain实现动态加载和卸载程序集的效果. 但是.NET Core 仅支持单个默认 ...
-
Qt Creator插件工作流程代码走读
Qt Creator有个很风骚的插件管理器PluginManager,还有个很骚包的插件说明PluginSpec.基本上,所有的Qt程序的入口都是传统的C程序一样,代码流程从main()函数开始. ...
-
asp.net core 使用NLog记录日志到txt文件
一.使用VisualStudioCode创建一个webapi项目(也可以是mvc等).一个类库(用于封装记录日志方法,当然如果使用依赖注入到控制台项目,就不需要此类库了). 二.在类库中添加NLog. ...
-
ASP.NET Core 添加NLog日志支持(VS2015update3&;VS2017)
1.创建一个新的ASP.NET Core项目 2.添加项目依赖 NLog.Web.AspNetCore 3.在项目目录下添加nlog.config文件: <?xml version=" ...
-
在asp.net core中使用NLog
第一步:nuget 引入 NLog.Web.AspNetCore 4.5+ 第二步:放入nlog.config <?xml version="1.0" encoding= ...
-
ASP.NET Core整合Zipkin链路跟踪
前言 在日常使用ASP.NET Core的开发或学习中,如果有需要使用链路跟踪系统,大多数情况下会优先选择SkyAPM.我们之前也说过SkyAPM设计确实比较优秀,巧妙的利用Diagnosti ...
-
Qt Creator 源码学习笔记04,多插件实现原理分析
阅读本文大概需要 8 分钟 插件听上去很高大上,实际上就是一个个动态库,动态库在不同平台下后缀名不一样,比如在 Windows下以.dll结尾,Linux 下以.so结尾 开发插件其实就是开发一个动态 ...
-
eclipse安装zylin embedded cdt失败解决办法
最近再搞嵌入式开发,之前用惯了IDE调试单片机的那种方式,开发2440和am3358驱动时候无法方便的查看寄存器和变量,憋的抓耳挠腮,不爽得很,没有可视化环境进行实时调试观察,太特么蛋疼了.感觉这种情 ...
随机推荐
-
Nginx配置文件nginx.conf中文详解
#定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_processes 8; #全局错误日志定义类型,[ debug | in ...
-
TinyFrame升级之五:全局缓存的设计及实现
在任何框架中,缓存都是不可或缺的一部分,本框架亦然.在这个框架中,我们的缓存分为两部分:内存缓存和单次请求缓存.简单说来,就是一个使用微软提供的MemoryCache做扩展,并提供全局唯一实例:另一个 ...
-
USACO Section 2.4: Fractions to Decimals
乍看题目感觉有难度,实际分析后其实是道简单题 /* ID: yingzho1 LANG: C++ TASK: fracdec */ #include <iostream> #include ...
-
import java.util.Scanner;
一.扫描控制台输入 当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,,,,,,,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象 ...
-
[置顶] 获取激活码,激活myeclipse
myeclipse10.0 正式版下载地址: http://downloads.myeclipseide.com/downloads/products/eworkbench/indigo/instal ...
-
bzoj1178
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1178 看ppt http://wenku.baidu.com/link?url=dJv6LNm ...
-
Spring实例
Spring实例 上次的博文中 深入浅出Spring(二) IoC详解 和 深入浅出Spring(三) AOP详解中,我们分别介绍了一下Spring框架的两个核心一个是IoC,一个是AOP.接下来我们 ...
-
mysql性能排查思路
mysql性能瓶颈排查 top/free/vmstat/sar/mpstat 查看mysqld进程的cpu消耗占比 确认mysql进程的cpu消耗是%user, 还是sys%高 确认是否是物理内存 ...
-
全新OCR3500数据
改装: 手变6700,夹器彦豪R741,牙盘5700,前拨5700,后拨5701,飞轮5700,链条YBN S10 S2,弯把DEDA RHM01,前叉山寨BIANCHI K-VID,轮组FULCRU ...
-
python笔记1-基础概念、python安装使用配置
Python 1.基础概念 一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学.在1989诞生,Guido(龟叔)开发.这里的python并不 ...