我是TeamCity的新手,我们有许多源代码管理的常见项目,然后直接在相关项目中引用,即:

Common
  branches
  tags
  trunk
    CommonProject
      CommonProject.csproj
    Common.sln
ProjectX
  branches
  tags
  trunk
    ProjectX.sln

结果,对“CommonProject.csproj”的引用在“ProjectX.sln”中这是...... \ Common \ trunk \ CommonProject \ CommonProject.csproj的内容,这在我们的开发环境中很好,但是当涉及到TeamCity时它会说它无法找到路径“.... \共同\树干\ CommonProject \ CommonProject.csproj"

解决此问题的最佳方法是什么?我尝试将CommonProject添加到TeamCity作为依赖,但它似乎仍然不想玩球......

由于

有帮助吗?

解决方案

我们通过在Subversion中使用Externals来解决这个问题,它允许您从不同的(位)存储库中提取内容。

然后,当我们构建解决方案时,我们将这些常见项目分组到具有项目特定解决方案的相同文件夹中 - 即,当我们检查出来时,我们有:

Solution1
   +---Project1
   +---Project2
   +---Project3
   +---Common1
   +---Common2

然后,分开:

Solution2
   +---ProjectA
   +---ProjectB
   +---ProjectC
   +---Common1
   +---Common2

因为我们以这种方式设置了外部和目录/文件夹结构,所以理论上你应该能够签出(或导出)“解决方案”。到一个空的目录,让它从头开始成功构建(取决于所有必要的工具的安装),因此TeamCity(或任何你的持续集成服务器)也应该能够从头开始构建它。事实上,甚至在我们开始使用TeamCity之前,我就已将此作为策略,但一旦开始持续集成,价值就会更清晰。

Subversion Red Book的相应位在这里:外部定义

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top