teamcity使用问题收集



1 误删除工程project 处理解决办法


一次操作中本来是要在一个工程中删除一个子工程,但一不小心把整个工程都删除了,顿时蒙了,这样重新配置太麻烦了,冷静下来后还是想尽量能恢复最好,下面的是恢复的过程


1 在teamcity的logs目录下找到 teamcity-server.log 这个文件,最新的操作在最下面,可以看到如下信息:



"https://github.com/Bearded-Hen/Android-Bootstrap.git#refs/heads/master"}" was removed from "HL.Webapi {internalId=project1, externalId=HlWebApi}" by "'huwei' {id=6}" 

http://192.168.1.8:84/HQ.Ionic.git#refs/heads/dev"}" was removed from "HL.Webapi {internalId=project1, externalId=HlWebApi}" by "'huwei' {id=6}"

[2016-01-14 16:34:42,841] INFO - tbrains.buildServer.ACTIVITIES - VCS root ""HL.Service.Dev" {internal id=8, id=HlServiceDev, description: "http://192.168.1.8:84/HL.Service.git#refs/heads/dev"}" was removed from "HL.Webapi {internalId=project1, externalId=HlWebApi}" by "'huwei' {id=6}"

[2016-01-14 16:34:42,872] INFO - tbrains.buildServer.ACTIVITIES - VCS root ""HL.Service.Online.Dev" {internal id=9, id=HlWebApi_HlServiceOnlineDev, description: "http://192.168.1.8:84/HL.Service.git#refs/heads/1.100"}" was removed from "HL.Webapi {internalId=project1, externalId=HlWebApi}" by "'huwei' {id=6}"

[2016-01-14 16:34:42,903] INFO - jetbrains.buildServer.SERVER - Project directory moved to trash folder: D:\ProgramData\JetBrains\TeamCity\config\_trash\HlWebApi.project1



这里可以发现删除的工程被移除到 D:\ProgramData\JetBrains\TeamCity\config\_trash\HlWebApi.project1 这里了



2 copy D:\ProgramData\JetBrains\TeamCity\config\_trash\HlWebApi.project1  到 D:\ProgramData\JetBrains\teamcity\config\projects 下,名称从HlWebApi.project1  改为 HlWebApi



3 在重新刷新web看,工程又回来了,:) 所以删除一定要小心哦



4 后来仔细看了下原来工程配置信息都是以xml文件的形式存放在工程目录下的,所以文件还原过来就直接可以用了



2 teamcity编译时提示 .nuget该文件夹找不到,但开发环境又没有问题


编译c#的工程文件,teamcity编译时提示 .nuget该文件夹找不到,但开发环境又没有问题,仔细查找csproj可以发现,是解决方案的路径设置的不对,以至于找不到要根目录(一般在sln解决方案下放一个.neget,没必要每个工程下都放一个),如下,把路径设置好后,再git到版本库,重新编译问题解决。


<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\..\..\</SolutionDir>


造成这个问题最大的可能就是有时工程是从别的工程copy过来改的,.csproj中这个SolutionDir这个竟然不会自动修改,重新生成也没有问题,但若把这行去掉,再打开生成就会修改,而这个设置nuget在还原的时候会依照该路径来找.nuget所在的位置。