由于路径问题,TeamCity 无法构建解决方案
TeamCity falis to build a solution due to pathing issues
图片中的XXX和模糊部分是相同的字符序列,是为了保护隐私。
我们对 Visual Studio 2015 年的解决方案进行了划分,使事情变得更容易。所以物理上在磁盘上我们有以下文件夹:
Platform
ProjectA
Shared
Base
Common
Core
Extensions
Frameworks
Indentity
Linq
MVC
Security
...
而在visual studio中我们使用以下逻辑布局:
请注意我们如何在名为 slnXXXShared 的解决方案中有一个解决方案文件夹,它可以方便地保存对磁盘上物理存在的一些项目的引用,如 Shared\Base 等
现在这一切在 visual studio 中运行良好。但是,当我尝试在 TeamCity 上构建 slnXXXPlatform 时,它失败了,因为我们有这样的东西:
The project file
"D:\TeamCityBuildAgent\work\fd9f07464bf571fc..\XXXShared\XXX.Extensions\XXX.Extensions.csproj"
was not found.
问题是“..”向上移动文件夹级别(对于 LOGICAL 解决方案文件夹 slnXXXShared)。但是,当所有文件都放置在文件系统中供代理使用时,TeamCity 将它们放置在同一级别,即:
其中突出显示的项目来自先前在 VS 解决方案中显示的逻辑文件夹 slnXXXShared。
那么我该如何为 TeamCity 解决这个问题?那是在不需要时处理“..”以向上移动文件夹?理想情况下,我不想从 VS 解决方案中丢失解决方案文件夹 slnXXXShared,因为它有助于隐藏所有引用的共享项目。
原来这是新手犯的错误。本质上,我已经配置了 VCS roots:
\Root\SolutionOneFolder
\Root\SolutionTwoFolder
使用两个这些根将导致相同目标工作文件夹
C:\Agent\WorkDir\
正在被包含以上所有内容的代理使用。因此,我现在创建一个 VCS 根目录:
\Root
然后将它与 checkout rules 一起使用,我在结帐时实现了单独的文件夹布局,例如
\Root\SolutionOneFolder => C:\Agent\WorkDir\SolutionOneFolder
\Root\SolutionTwoFolder => C:\Agent\WorkDir\SolutionTwoFolder
图片中的XXX和模糊部分是相同的字符序列,是为了保护隐私。
我们对 Visual Studio 2015 年的解决方案进行了划分,使事情变得更容易。所以物理上在磁盘上我们有以下文件夹:
Platform
ProjectA
Shared
Base
Common
Core
Extensions
Frameworks
Indentity
Linq
MVC
Security
...
而在visual studio中我们使用以下逻辑布局:
请注意我们如何在名为 slnXXXShared 的解决方案中有一个解决方案文件夹,它可以方便地保存对磁盘上物理存在的一些项目的引用,如 Shared\Base 等
现在这一切在 visual studio 中运行良好。但是,当我尝试在 TeamCity 上构建 slnXXXPlatform 时,它失败了,因为我们有这样的东西:
The project file "D:\TeamCityBuildAgent\work\fd9f07464bf571fc..\XXXShared\XXX.Extensions\XXX.Extensions.csproj" was not found.
问题是“..”向上移动文件夹级别(对于 LOGICAL 解决方案文件夹 slnXXXShared)。但是,当所有文件都放置在文件系统中供代理使用时,TeamCity 将它们放置在同一级别,即:
其中突出显示的项目来自先前在 VS 解决方案中显示的逻辑文件夹 slnXXXShared。
那么我该如何为 TeamCity 解决这个问题?那是在不需要时处理“..”以向上移动文件夹?理想情况下,我不想从 VS 解决方案中丢失解决方案文件夹 slnXXXShared,因为它有助于隐藏所有引用的共享项目。
原来这是新手犯的错误。本质上,我已经配置了 VCS roots:
\Root\SolutionOneFolder
\Root\SolutionTwoFolder
使用两个这些根将导致相同目标工作文件夹
C:\Agent\WorkDir\
正在被包含以上所有内容的代理使用。因此,我现在创建一个 VCS 根目录:
\Root
然后将它与 checkout rules 一起使用,我在结帐时实现了单独的文件夹布局,例如
\Root\SolutionOneFolder => C:\Agent\WorkDir\SolutionOneFolder
\Root\SolutionTwoFolder => C:\Agent\WorkDir\SolutionTwoFolder