一台build machine上一般只有一个build service[对应一个build controller]来serve一个team project collection,但又workaround来实现多个controller在一台机器上的共存,参考这里

说一说自动化build和自动化部署:

  1.创建Build Definition[build serivce的账号必须有drop folder的写权限,就是Build Definition\Build Defaults\Staging location下的UNC path如\\10.1.1.16\DropFolder]。

   注意:a)之前在创建好然后trigger后老是挂掉,原因是版本引用问题,参考这篇mark

      b)在Process中Required->items to build指定要build的solution or project。

  2.在build definition的Process->Advanced->MSBuild Arguments添加如下参数以完成build后的自动部署(参数之间用空格分开):

    /p:DeployOnBuild=True

    /p:Configuration=Debug  //此处的Configuration可以在configuration manager中自己创建;每次发布都会做文件的全部替换,不希望web.config文件(此处以web项目为例)被                 //替换的话,其实一般就是数据库的链接字符串和一些appsettings,可以在Web.Debug.Config中做一些设置,详见第三条;

    /p:SkipExtraFilesOnServer=true

    /p:DeployTarget=MSDeployPublish

    /p:MSDeployPublishMethod=RemoteAgent    //即使用web deploy的方法,如果用其他的比如IIS自带的WMSVC的话,相应参数另行设置;还有WebDeployPackage;

    /p:AllowUntrustedCertificate=True

    /p:CreatePackageOnPublish=true

    /p:DeployIISAppPath=siteName/applicationName

    /p:MsDeployServiceUrl=http://10.1.1.4

    /p:username=domain\tfsbuild2

    /p:password=Abcd1234!

  3.

<?xml version="1.0" encoding="utf-8"?>

<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
In the example below, the "SetAttributes" transform will change the value of
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
finds an attribute "name" that has a value of "MyDB". <connectionStrings>
<add name="MyDB" //这里写发布后需要被替换的连接字符串的名字
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" //connectionString为自动部署时要被设置的字符串
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> //Match是匹配"name"来替换相应的value
</connectionStrings>
-->
<system.web>
<!--
In the example below, the "Replace" transform will replace the entire
<customErrors> section of your web.config file.
Note that because there is only one customErrors section under the
<system.web> node, there is no need to use the "xdt:Locator" attribute. <customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
-->
</system.web>
</configuration>

操作中还碰到个问题:同一个site/application路径,一个project可以自动部署,另一个则不行,提问在这儿

总结:做到以上,就可以做自动化build和部署了!PS:如果没有特殊问题比如上边提到的问题。put down this just for reminding me of how to do some auto-build/deploy related stuff later.

TFS Build Definition And Auto Deploy的更多相关文章

  1. TFS Build Definition

    1.  TFS Build 简介 在团队项目开发中,编译常常是一个很困难的事情! 可能你会反问编译有什么难的?不就是右键,然后点击 Build/Rebuild, 或者直接按 F5 么?这都不会,真不知 ...

  2. 如何用TFS build definition添加自动建立nuget package 步骤

    参考网址:https://www.visualstudio.com/en-us/docs/build/steps/package/nuget-packager https://docs.nuget.o ...

  3. TFS build server搭建,搭建自动化构建服务器

    TFS build 服务器的搭建主要步骤如下: 一:环境准备: 新建一台build服务器 安装Visual Studio.主要目的是: a. 生成Build脚本所需要的build命令:b.与TFS组合 ...

  4. TFS Build做Web应用持续集成发布的一个技巧

    由于面向接口编程的关系,许多实现往往是动态注入运行,在一个项目中直接引用实现dll编译是不合理的.通常我们会在Post Build Event中添加一些xcopy命令将运行时才需要的dll复制到输出目 ...

  5. TF42064: The build number already exists for build definition error in TFS2010

    In TFS2008, deleting a build removes it from the database itself. If you delete a build called Build ...

  6. auto deploy docs website

    auto deploy docs website { "name": "docs", "version": "0.0.1" ...

  7. TFS Build Silverlight项目的两个问题

    1.The Silverlight 4 SDK is not installed. 打开对应的Build Definition,Process -> Advanced -> MSBuild ...

  8. xeam Build Definition Extension uninstall 卸载

    之前在VS上装了Build definition 的扩展,后来发现很不好用,想卸载掉,就增 工具下面找add-in manager, 结果找不到,external tools下面也找不到, googl ...

  9. TFS2010单独安装配置tfs build server

    记录一下确实很磨人. 同样硬件和软件环境的两台服务器,其中一台服务器很久之前就配置好了tfs2010 build ,然后最近想再配置一台tfs build server,但是按照以前的配置流程始终提示 ...

随机推荐

  1. python---dnspython

    dnspython 是Python实现的一个DNS工具包,支持几乎所有的记录类型,可以用于查询,传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS).可以替代ns ...

  2. 一条SQL查出当月的每一天

    from master..spt_values ),,),'2013-02-03')+'-01' as datetime)) 结果: 返回带有年月日的日期 ),),) AS datetime) fro ...

  3. System.Data.OleDb.OleDbException: 未指定的错误的解决方法

    异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误 这个错误是access数据库特有的错误,当access频繁读取或操作过多的时候就会发生这个错误,微软官 ...

  4. Python 网络编程(一)

    Python 网络编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ...

  5. OAF_开发系列03_实现OAF如何在保存前判断数据是否存在变更(案例)

    2014-06-26 Created By BaoXinjian

  6. Software Development Principle

    Every great piece of software begins with customer's big idea. As a professional softeware developer ...

  7. [ActionScript 3.0] AS3.0和AS2.0的相互通信

    AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...

  8. Sorry, but the Android VPN API doesn’t currently allow TAP-based tunnels.

    Sorry, but the Android VPN API doesn’t currently allow TAP-based tunnels. Edit .ovpn configfile “dev ...

  9. 【转载】nodejs,npm,express分别什么?

    很多刚刚接触nodejs的初学者,都会经历一个很繁冗的环境安装过程. 一般主要要安装nodejs,npm和express三样东西.那么这三样东西分别是干什么的呢? 本篇文章就大致介绍一下这三样东西分别 ...

  10. JAVA 编程规范(上)

    2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1.      应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...