[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的. 环境搭建 找 ...
随机推荐
- 将csv格式的文件数据导入mysql中
示例如下: load data infile 'test.csv'into table `test`fields terminated by ',' optionally enclosed by '& ...
- python数据可视化(matplotlib)
- (转)java中的 | ^ & 分别是什么?
|是按位或 ^是按位抑或 &是按位与 比如有两个数 int x = 5; int y = 11; System.out.println(x|y); System.out.println(x&a ...
- Java 方法(变量)修饰符的使用顺序
1:访问权限标识:public private protected (default) 2:static 静态 :abstract 抽象方法/类 3:final 常量:[可选,不能和abs ...
- iOS源码博文集锦3
iOS精选源码 高仿淘宝首页 登录动画 iOS高德二次封装,有定位,轨迹,语音实时导航,GPS纠偏..... 逗视iOS客户端MGDS_Swift 两句代码搞定转场动画 自定义刷新控件 已封装支持自定 ...
- 【模板小程序】链表排序(qsort/insert_sort/merge_sort)
前言 本文章整理了链表排序的三种方法,分别是快速排序.插入排序.归并排序.为适应不同用途,先给出常用的int版本,再在此基础上抽象出类模板. 目录 一.针对整数的版本(常用) 文中链表定义 链表相关操 ...
- Uva 679 Dropping Ballls 二叉树的编号
这个程序常规处理起来数据量很大,I可以高达2^D-1 /* ....... */ 里面的代码块据此避免了开太大的数组 做太多的循环 #include<cstdio> #include< ...
- 使用Node.js调用阿里云短信的发送以及接收
为了使用Node.js调用阿里云短信服务,我自己写了个npm包, 目前实现了: 使用Node.js调用阿里云短信服务,发送短信: 使用Node.js调用阿里云短信服务以及MNS服务,接收用户上行短信 ...
- 使用Nginx搭建本地流媒体服务器
Mac搭建nginx+rtmp服务器 1.打开终端,查看是否已经安装Homebrew,直接输入命令 man brew 如果Mac已经安装了, 会显示一些命令的帮助信息. 此时输入Q退出即可, 直接进入 ...
- PyCharm中光标变粗的解决方法
pycharm中光标变粗,如下: 原因:光标进入了改写状态. 解决方法:按一下键盘中的Insert键就好了.