У нас есть очень большое решение (около 300+) проектов, и мы пытаемся построить его через MSBuild на TFS2010.
Мы можем создать его через MSBuild на всех наших машинах для разработки и в настоящее время внедряем TFS.
Структура нашего кода выглядит так:
bin\Client
bin\Server
Framework\ClientFramework.csproj
Modules\Module1\Project1
Modules\Module2\Project2
etc.
Каждый проект имеет относительный OutputPath, который создает код в каталоге клиента или сервера bin. Так, например, 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 build, которые копируют некоторые сторонние dll в папки bin, эти пути также не могут быть разрешены должным образом.
Я думаю, что решение, которое мы ищем, состоит в том, чтобы собрать все в существующую структуру bin \ Client, bin \ Server, а затем переместить папки из bin в Binaries.
Любые идеи о том, как этого добиться или как мы должны работать, приветствуются, но обновление наших существующих проектов может оказаться проблематичным, поскольку все это работает с VS, сборками командной строки разработчика и с CC.net.