TeamCity因为路径问题而建立解决方案

时间:2016-05-06 05:15:18

标签: visual-studio-2015 teamcity

图像中的XXX和模糊部分是相同的字符序列,用于保护隐私。

我们将Visual Studio 2015解决方案划分为一组,以简化操作。所以物理上在磁盘上我们有以下文件夹:

Platform
   ProjectA
Shared
   Base
   Common
   Core
   Extensions
   Frameworks
   Indentity
   Linq
   MVC
   Security
   ...

在visual studio中我们使用以下逻辑布局:

enter image description here

请注意我们在解决方案中有一个名为slnXXXShared的解决方案文件夹,这样可以方便地将对物理上存在的某些项目的引用保存为Shared \ Base等。

现在这在视觉工作室中运作良好。但是,当我尝试在TeamCity上构建slnXXXPlatform时,它会失败,因为我们有类似的东西:

  

项目文件   “d:\ TeamCityBuildAgent \工作\ fd9f07464bf571fc .. \ XXXShared \ XXX.Extensions \ XXX.Extensions.csproj”   没找到。

问题是“..”向上移动文件夹级别(对于LOGICAL解决方案文件夹slnXXXShared)。但是,当所有文件都放在文件系统中供代理使用时,它们将被TeamCity置于相同级别,即:

enter image description here

其中突出显示的项目来自先前从VS解决方案中显示的逻辑文件夹slnXXXShared。

那我该如何为TeamCity解决这个问题呢?这是处理“..”来处理文件夹时没有必要吗?理想情况下,我不想丢失VS解决方案中的解决方案文件夹slnXXXShared,因为它有助于隐藏所有引用的共享项目。

1 个答案:

答案 0 :(得分:1)

这结果是一个新手的错误。本质上我已经配置了VCS的根源:

\Root\SolutionOneFolder
\Root\SolutionTwoFolder

使用两者这些根将导致相同目标工作文件夹

C:\Agent\WorkDir\

由包含上述所有内容的代理人使用。所以我现在创建一个单独的VCS根目录:

\Root

然后将其与checkout rules一起使用我在结帐时实现单独的文件夹布局,例如。

\Root\SolutionOneFolder => C:\Agent\WorkDir\SolutionOneFolder
\Root\SolutionTwoFolder => C:\Agent\WorkDir\SolutionTwoFolder