[2015-10-11]tfs2015 vs2013 配置持续集成
今天刚配置完tfs2015+vs2013的持续集成(自动构建+自动发布),记录一下走过的坑。
tfs2015和tfs build server是之前其他同事装的,略去不讲,列一下几个坑以及埋坑方法。
前提
微软TFS的持续集成配过一次后会觉得真的还是蛮方便的,当然前提是你对它的构建工具和VS足够了解。
首先,打开vs2013的 团队资源管理器 ,连接上TFS后,在团队资源管理首页上可以看到 生成 ,点击进入生成后,新建生成定义。
自动生成的配置不麻烦,略去不表,参考创建或编辑生成定义,关键是生成后的自动发布,重点在 过程 的配置上。
过程的配置重点
过程这一节的配置,使用默认模板,重点在于配置:
- Build中的Projects 指定需要生成的解决方案;
- Build中的Configurations 指定要使用的配置,如 Any CPU|Release 如果配置名与默认可选的不同,可以直接编辑修改
- Build中的Advanced 设置msbuild的参数选项;
- Test中的Advanced 可以选择关闭测试项目的执行,disable tests;
其中msbuild的参数选项,是首次配置最迷糊的地方,其实这里就是用/p 设置一些msbuild脚本要用到的变量值。
/p:DeployOnBuild=True /p:PublishProfile=yourpublishprofile /p:AllowUntrustedCertificate=True /p:VisualStudioVersion=12.0 /p:Username=yourusername /p:Password=yourpassword
这里指定了vs版本号,就要提一下,生成服务器上需要安装vs,可以只选web开发相关功能安装,vs2013大概也要9G空间。
明明是类库项目,为啥msbuild在找发布配置文件?
这个坑,其实不容易遇到,只要是按部就班新建类库项目的话。(我也不知道为啥我们团队的类库项目会遇到这个情况)
症结在类库项目csproj文件的内容上,用记事本或其他文本编译器打开类库项目的csproj文件,在其中搜“Microsoft.WebApplication.targets”,应该是一个或两个import配置节,删除即可。
targets文件和csproj文件其实都是定义了一些msbuild的流程任务,而Microsoft.WebApplication.targets文件是为web应用准备的,一般类库项目是不该有这个配置的。
error MSB4166: Child node "3" exited prematurely
中文提示应该是 “字节点 3 过早退出,正在关闭”。
这个问题的处理,资料真不多,找了半天,最后终于看到一篇文章,是要设置msbuild的平台,由anycpu 改为 x86。
指定非官方的nuget源
为解决方案启用nuget restore后,如果不使用官方的源,可以在.nuget目录下的NuGet.targets中配置 PackageSource。
为何发布后,web.config 的配置转换没起作用?
参考 过程的配置重点 第二条
Build中的Configurations 指定要使用的配置: Any CPU|YourConfigName
LibGit2Sharp报异常,git2-msvstfs.dll中 git__thread__init 不存在
这个处理了很久,解决方式是在 msbuild 参数上加上 /p:GenerateBuildInfoConfigFile=false
其他问题
如果一个解决方案中有多个项目需要发布,那么发布的配置文件名必须一致。
webdeploy发布工具的使用也很重要,回头另开一帖。
参考
[2015-10-11]tfs2015 vs2013 配置持续集成的更多相关文章
- Jenkins+Gitlab+自动化测试配置持续集成
Jenkins安装在win7上 GitLab安装在docker上 需求:本地提交自动化测试代码在gitlab上后,jenkins自动构建,拉下新提交的自动化代码,并且运行 参考的链接: https:/ ...
- 2015.10.11(js判断鼠标进入容器的方向)
判断鼠标进入容器的方向 1.前几天在万圣节专题项目中用到了鼠标坐标page事件,随着鼠标背景图片移动形成有层次感的效果,但page事件在IE低版本不支持,所以还要做兼容.在研究page事件同时无意中想 ...
- Gitlab Jenkins WebHook 持续集成配置踩坑记
Jenkins相关介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 目的 配置Gitla ...
- 漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃monkey日志
漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃日志 1.APP崩溃率标准 开发或测试app的同学,对于app崩溃肯定非常熟悉,频繁的线上崩溃属 ...
- Android 项目配置 gitlab-ci 持续集成
一.项目根目录下创建一个 .gitlab-ci.yml 文件 然后在 .gitlab-ci.yml 中配置持续集成的脚本: 脚本配置详细可以看: Configuration of your jobs ...
- 【OF框架】在Azure DevOps中配置项目持续集成CI服务,推送镜像到Azure容器注册表
准备工作 开通Azure账号,具有开通服务权限,关键是里面要有钱. 开通Azure DevOps,能够创建组织和项目. 具备一定的DevOps知识,了解CICD概念.Docker基本操作. 一.创建& ...
- 有手就行3——持续集成环境—maven、tomcat、安装和配置
有手就行3--持续集成环境-maven.tomcat.安装 持续集成环境(5)-Maven安装和配置 持续集成环境(6)-Tomcat安装和配置 持续集成环境(5)-Maven安装和配置 在Jenki ...
- 使用VSTS/TFS搭建iOS持续集成环境
TFS 自2015版开始支持跨平台的持续集成环境,通过提供开源的build agent为 Windows / linux / macOS 提供了统一的持续集成环境管理能力.这篇文章给大家介绍一下如何使 ...
- Jenkins持续集成 & .NET
最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,BlueOcean UI还是很nice的. 环境搭建 找 ...
随机推荐
- JSP制作简单登陆
JSP制作简单登陆界面 运行环境 eclipse+tomcat+MySQL 不知道的可以参考Jsp运行环境--Tomcat 项目列表 这里我先把jsp文件先放在Web-INF外面访问 需要建立的几个文 ...
- Web聊天应用中的表情插件
聊天应用中的表情插件 用于即时聊天应用的图片表情插件,具有展示表情.插入表情和表情编解码的功能 项目地址 看代码 看demo 原理介绍 web端的即时聊天中看到的表情,其实就是一张张表情图片,通过im ...
- CSS中2d转换:transition过渡放在:hover伪类中与应用在整个元素中区别
css的2d转换十分强大,能够在不使用js的情况下,实现页面的元素与用户之间更多动态的交互,增强用户体验.其中使用最多的就是hover伪类. 1.创建一个页面的div元素: <!DOCTYPE ...
- 解读 Vue 之 Reactive
本文同步发表在 https://github.com/whxaxes/blog/issues/7 前言 在一篇文章中简单讲了 vue 是如何把模板解析成 render function 的,这一篇文章 ...
- java ArrayList 踩坑记录
做编程的一个常识:不要在循环过程中删除元素本身(至少是我个人的原则).否则将发生不可预料的问题. 而最近,看到一个以前的同学写的一段代码就是在循环过程中删除元素,我很是纳闷啊.然后后来决定给他改掉.然 ...
- 嵌入式linux网络配置
在开发阶段需要用tftp等开发工具,这时就要配置Linux网络,首先确保windows网络IP地址为固定IP, 1.假设windows IP地址为19.168.2.10子网掩码:255.255.255 ...
- 一次和matplotlib和numpy的初识及简单的异常值清理
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ...
- 程序设计中的数学思维函数总结(代码以C#为例)
最近以C#为例,学习了程序设计基础,其中涉及到一些数学思维,我们可以巧妙的将这些逻辑问题转换为代码,交给计算机运算. 现将经常会使用到的基础函数做一总结,供大家分享.自己备用. 1.判断一个数是否为奇 ...
- ARP协议详解RARP
简单来说,ARP协议是IP地址转换成MAC地址的协议.链路层协议.过程如下: 1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系. 2:当源主机要 ...
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结点存储一个关键字: 非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树: 如: BST树 ...