You can accomplish this by taking control of the location of the extract directory.
First you need to define your statement directory for what both assemblies might know. In the assembly configuration, go to "Version Control Settings" → "Validation Settings". Change the "Order Code" setting to Custom Path . You will then be asked to provide the directory in which you want to check your source. It can be anywhere ** if TeamCity has write permissions.
Then you need to change the checkout rules (also in the version control settings) for each project so that they are oriented to the folder relative to the root of the Checkout directories. You can do this by setting the rule to +:%some.repo.path%=>/%some.sub.folder% . You can register any subfolder in which you want. We just check everything on the root directory of Checkout ( =>/ ).
If both projects reference the same order catalog, then this combination of settings should give you the control and flexibility you are looking for.
** For our order catalog, we use the parameterized value %teamcity.agent.work.dir%\%system.teamcity.projectName%\%branch% . The first two parameters are TeamCity system parameters, and the last by us. On our system, this allows G: \ BuildAgent \ work \ $ PROJECT \ $ BRANCH, which saves everything neatly and predictably.
source share