图像中的XXX和模糊部分是相同的字符序列,用于保护隐私。
我们将Visual Studio 2015解决方案划分为一组,以简化操作。所以物理上在磁盘上我们有以下文件夹:
Platform
ProjectA
Shared
Base
Common
Core
Extensions
Frameworks
Indentity
Linq
MVC
Security
...
在visual studio中我们使用以下逻辑布局:
请注意我们在解决方案中有一个名为slnXXXShared的解决方案文件夹,这样可以方便地将对物理上存在的某些项目的引用保存为Shared \ Base等。
现在这在视觉工作室中运作良好。但是,当我尝试在TeamCity上构建slnXXXPlatform时,它会失败,因为我们有类似的东西:
项目文件 “d:\ TeamCityBuildAgent \工作\ fd9f07464bf571fc .. \ XXXShared \ XXX.Extensions \ XXX.Extensions.csproj” 没找到。
问题是“..”向上移动文件夹级别(对于LOGICAL解决方案文件夹slnXXXShared)。但是,当所有文件都放在文件系统中供代理使用时,它们将被TeamCity置于相同级别,即:
其中突出显示的项目来自先前从VS解决方案中显示的逻辑文件夹slnXXXShared。
那我该如何为TeamCity解决这个问题呢?这是处理“..”来处理文件夹时没有必要吗?理想情况下,我不想丢失VS解决方案中的解决方案文件夹slnXXXShared,因为它有助于隐藏所有引用的共享项目。
答案 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