We have a very large solution (about 300+) of projects, and we are trying to create it through MSBuild on TFS2010. We can build it through MSBuild on all development machines and in the process of adopting TFS.
The structure of our code looks like this:
bin\Client bin\Server Framework\ClientFramework.csproj Modules\Module1\Project1 Modules\Module2\Project2 etc.
Each project has a relative OutputPath, which creates the code in the client or server bin directory. So, for example, Project1.csproj has an OutputPath from ".. \ .. \ bin \ Client".
It seems we have a problem that in TFS MSBuild OutDir is set to a fixed path:
C:\Builds\MyProject\Binaries\
So, everything gets confusing when resolving relative OutputPath on top of OutDir
- ClientFramework goes to C: \ Builds \ MyProject \ Binaries \ .. \ bin \ Client
- Project1 goes to C: \ Builds \ MyProject \ Binaries \ .. \ .. \ bin \ Client
- and etc.
We also have Post build events that copy some third-party DLL to bin folders, these paths also cannot be resolved properly.
I think the solution we make is to build everything for our existing structure bin \ Client, bin \ Server, and then move the folders from bin to Binaries.
Any ideas on how to do this or how we should work are appreciated, but updating existing projects can be problematic, since all this works with VS, the developer’s command line prompts, and CC.net.
Daveshaw
source share