Проблемы с MSBuild OutputPath и OutDir в TFS2010

У нас есть очень большое решение (около 300+) проектов, и мы пытаемся создать его с помощью MSBuild на TFS2010. Мы можем собрать его с помощью MSBuild на всех наших машинах для разработки, и сейчас мы находимся в процессе принятия TFS.

Структура нашего кода выглядит так:

bin\Client
bin\Server
Framework\ClientFramework.csproj
Modules\Module1\Project1
Modules\Module2\Project2
etc.

Каждый проект имеет относительный OutputPath, который собирает код для bin Client или каталог сервера. Так, например, Project1.csproj имеет OutputPath ".. \ .. \ bin \ Client".

Кажется, у нас возникла проблема из-за того, что в TFS MSBuild для OutDir задан фиксированный путь:

C:\Builds\MyProject\Binaries\

Итак все становится запутанным, когда разрешение относительного OutputPath поверх OutDir

  • ClientFramework переходит в C: \ Builds \ MyProject \ Binaries \ .. \ bin \ Client
  • Project1 переходит в C: \ Builds \ MyProject \ Binaries \ .. \ .. \ bin \ Client
  • и т. д.

У нас также есть некоторые события сборки Post, которые копируют некоторые сторонние dll в папки bin, эти пути также не могут быть разрешены должным образом.

Я думаю, что решение мы должны собрать все в существующую структуру bin \ Client, bin \ Server, а затем переместить папки из bin в двоичные файлы.

Любые идеи о том, как это сделать или как мы должны работать, приветствуются, но обновление наши существующие проекты могут оказаться проблематичными, поскольку все это работает с VS, сборками командной строки разработчика и с CC.net.

7
задан DaveShaw 28 June 2011 в 09:15
поделиться