自构建工具TeamCity的安装及使用



第2章 安装步骤



2.2 软件安装



2.2.1

安装包位置


\\192.168.0.5\persons\下载软件\TeamCity-8.1.5.exe 



附属安装包


\\192.168.0.5\persons\下载软件\WDeploy.exe



2.2.2

安装


点击 Teamcity-8.1.5.exe 按提示安装即可,安装完成后在安装目录有个文件加 TeamCity 


同时管理用的网站也配置好了



在浏览器输入配置的地址打开如下:http://localhost:8080/login.html


输入admin,admin (默认管理员帐号)(首次要求创建管理员帐号)

自构建工具TeamCity的安装及使用_System



也可自己注册新帐号,注册好后联系管理员分配权限



登入后 点击 又上角的 administrator即可创建,管理用户,用户组等


 


自构建工具TeamCity的安装及使用_teamcity_02



2.2.3

WDeploy.exe web部署服务安装


WDeploy.exe 是微软的web部署工具,因为发布web站点时要用到,点击安装,自定义安装,勾选所有项进行安装即可。



安装完成后,进入控制面板-管理工具-服务,


MsDepSvc,WMSVC 这两个服务设为自动启动并启动,如下图:

自构建工具TeamCity的安装及使用_ci_03

 


第3章 软件使用

本例以***.Webapi的自构建为例说明如何配置管理项目


3.1 创建project

进入 administrator 如图:


 


自构建工具TeamCity的安装及使用_自构建工具_04



点击 create project 进入创建页面


 


自构建工具TeamCity的安装及使用_自定义_05



输入信息完成创建


3.2 配置project

点击左上角的 project 选下拉图标,选择刚创建的 project 如图:


自构建工具TeamCity的安装及使用_System_06

 




点击项目右边的 下拉图标,选择 edit Settings 



3.2.1 General Settings 


自构建工具TeamCity的安装及使用_自构建工具_07



上半部分可以修改




点击 Create Build configuration


自构建工具TeamCity的安装及使用_ci_08




创建完成后 在build list 里 点击 edit 进入 build 的配置页面


 


自构建工具TeamCity的安装及使用_ci_09



3.2.1..1

Build Configuration Setttings


General Settings


该部分信息可不用修改


Version Control Setting


该部分输入信息如下:

自构建工具TeamCity的安装及使用_teamcity_10

 


Build Steps

构建步骤分十步(dev),即添加十个build step,分别如下


1-4 步为nuget package还原


5-7 为 project 自动编译


8-10 为文档自动生成



第一步:


Runner type:选择合适的类型 nugget Installer


Step name : 自定义


Excute step 一般选 If all previous steps finished successfully 即可


Nugget Settings: default 2.8.3 没有这项从下面的 nugget settings 设置即可


Path to solution file: 选择需要还原nuget package 的解决方案



自构建工具TeamCity的安装及使用_teamcity_11



第二步:



同上,nuget一般以sln为单位;有个要注意的地方,如果解决方案下工程文件路径有调整最好在解决方案管理nuget包里把包的引用删除再添加下。否则会出现teamcity里编译找不到dll的问题



第三步:


同上



第四步:


同上



第五步:


Runner type:选择合适的类型 MSBuild


Step name : 自定义


Path to solution file: 选择需要编译的工程文件 csproj


MSBuild version : Microsoft Build Tools 2013


MSBuild ToolsVersion: 12.0


Run platform:x86


Targets: rebuild


自构建工具TeamCity的安装及使用_teamcity_12




Command line parameters: 


/p:ReferencePath="..\Lib\Public;..\Lib\Aliyun_dotnet_SDK\bin"


/p:Configuration=TestServer


/p:OutputPath=bin  


/p:DeployOnBuild=True  


/p:DeployTarget=MSDeployPublish  


/p:MsDeployServiceUrl=https://192.168.0.106:8172/msdeploy.axd  


/p:username=Administrator  


/p:password=***


/p:AllowUntrustedCertificate=True  


/p:DeployIisAppPath=webapi.dev


/p:MSDeployPublishMethod=WMSVC


/p:EnableMSDeployAppOffline=true 


/p:MSDeployUseChecksum=true



说明:


ReferencePath 除了nuget package 引用外的其它引用


Configuration 是配置 debug,release 还有自定义的配置可选


OutputPath 输出路径


MsDeployServiceUrl 里的IP 改成目标网站的ip


Username,password 为目标机器的帐号信息


DeployIisAppPath 为目标网站的网站名 iis中的网站名



.NET Coverage tool: <No .NET Coverage> 因为暂没做自动测试,故选择这个

这里一般是webapi的编译设置。

如果是vs2013建的网站项目,是没有proj文件的,可以在网站项目上发布网站,这样就会有website.publishproj 文件了,但这样的文件编译后有个问题,引用的第三方包及要用到的系统包不能编译进bin,本人通过手动修改website.publishproj文件解决。如下:

在itemgroup 加入要用到但没有的包(红色部分)

  <ItemGroup>
    <AssemblyAttributes Include="AssemblyFileVersion">
      <Value>$(AssemblyFileVersion)</Value>
    </AssemblyAttributes>
    <AssemblyAttributes Include="AssemblyVersion">
      <Value>$(AssemblyVersion)</Value>
    </AssemblyAttributes>
<Reference Include="System.Diagnostics.Tracing" />
<Reference Include="System.Runtime" />
<Reference Include="System.Runtime.InteropServices" />
<Reference Include="System.Diagnostics.Tracing" />
<Reference Include="MongoDB.Bson">
      <HintPath>..\..\packages\mongocsharpdriver.1.9.2\lib\net35\MongoDB.Bson.dll</HintPath>
    </Reference>
    <Reference Include="MongoDB.Driver">
      <HintPath>..\..\packages\mongocsharpdriver.1.9.2\lib\net35\MongoDB.Driver.dll</HintPath>
    </Reference>
<Reference Include="log4net">
      <HintPath>..\..\packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath>
    </Reference>
<Reference Include="AspNetPager">
      <HintPath>..\..\packages\AspNetPager.7.4.3\lib\AspNetPager.dll</HintPath>
    </Reference>
  </ItemGroup>

网站项目的build的paramline 设置如下:同webapi,略有一点点区别 /p:OutputPath=bin  不用设

/p:Configuration=Debug
/p:DeployOnBuild=True  
/p:DeployTarget=MSDeployPublish  
/p:MsDeployServiceUrl=https://192.168.1.9:8172/msdeploy.axd  
/p:username=Administrator  
/p:password=***
/p:AllowUntrustedCertificate=True  
/p:DeployIisAppPath=Promotion
/p:MSDeployPublishMethod=WMSVC
/p:EnableMSDeployAppOffline=true 
/p:MSDeployUseChecksum=true



第六步:


自构建工具TeamCity的安装及使用_自构建工具_13



第七步:


同上



第八步:


 


自构建工具TeamCity的安装及使用_ci_14



/p:OutputPath="C:\Help\entity" 当输出路径与项目中不一致时可重新设置这个路径


*.shfbproj 是由

Sandcastle Help File Build创建的项目


第九步


同上



第十步:


同上



Build step 是自构建设置中最重要也是最繁琐的一步,参照截图配置即可。




Tiggers


即设置触发构建的条件

自构建工具TeamCity的安装及使用_自构建工具_15

 


Failure Contitions

无须设置

Build Features

无须设置


Dependencies
无须设置

Parameters

无须设置



Agent Requirements

无须设置,如图


自构建工具TeamCity的安装及使用_自定义_16


3.2.2 VCS Roots

如图:同build step 里的版本库设置相同

自构建工具TeamCity的安装及使用_ci_17

3.2.3 Report Tabs

无须设置


3.2.4 Parameters

无须设置

补充:如果该组很多step的Command line parameters:一样或大到处相同,可以在参数这里统一设置,这样就不用每个step里都重复设置这个,如下:

下面是某个step Command line parameters内容:

/p:Configuration=Release
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=https://192.168.1.147:8172/msdeploy.axd
/p:username=Administrator
/p:password=Admin123
/p:AllowUntrustedCertificate=True
/p:DeployIisAppPath=TL.Manager.Registry
/p:MSDeployPublishMethod=WMSVC


把它设置到Parameters里,这样step里就不用设置了 Parameters里的设置如下:

System Properties (system.)
Name Value
system.DefineConstants test147
system.DeployIisAppPath %teamcity.build.step.name%
system.MsDeployServiceUrl https://192.168.1.147:8172/msdeploy.axd
system.password Admin
system.username Administrator
Environment Variables (env.)
Environment variables will be added to the environment of the processes launched by the build runner (without env. prefix).


Environment Variables (env.)
Name Value
env.AllowUntrustedCertificate True
env.Configuration Release
env.DeployOnBuild True
env.DeployTarget MSDeployPublish
env.EnableMSDeployAppOffline true
env.MSDeployPublishMethod WMSVC
env.MSDeployUseChecksum true
env.OutputPath bin
env.SkipExtraFilesOnServer True




所以创建工程的时候最好相同设置的分在同一工程,这样可以共享一样的设置

3.2.5 Builds Schedule

无须设置


3.2.6 Shared Resources

无须设置



3.2.7 Maven Settings

无须设置



3.2.8 Meta-Runners

无须设置


3.2.9 SSH Keys

无须设置




当以上都设置好后,只要版本库有代码跟新则会触发自动构建,构建完成后 成功会显示 success ,否则会显示 感叹号图标,点击可看错误原因。