I’ve had a problem that has been driving me crazier than usual…  I’ve been trying to get the TFS Build process to create the ‘drop’ directories based upon the projects, rather than this huge glob directory of every file from every project.  Surprisingly, the default output of projects inside of TFS Build is to drop every file into one directory, EXCEPT for web sites.  What I’ve run into is needing to have applications and utility programs that are part of the solution and need to be deployed to be in their own directories when the build completes.  After spending a week of rather exotic solutions, including modifying the TFS Build definitions, writing all sorts of scripts, and looking at every package under the sun to solve the issue, I finally came across the CORRECT solution… tacking a property on to the MSBuild directive called GenerateProjectSpecificOutputFolder.  Setting that to true outputs to the per project directory structure.  This is EXACTLY what I’ve been looking for!  Thank you, Jason Stangroome for this WONDERFUL find!!!

Override the TFS Team Build OutDir property in .NET 4.5

 

Update… If you use the ReleaseTfvcTemplate.12.xaml from Release Management 2013 Update 2 client directory, the tokenization steps are missing.  Here is a link to a template that has the correct tokenization step, plus has the tokenization as a flag.  Cool stuff…

http://blogs.msdn.com/b/visualstudioalm/archive/2013/12/09/how-to-modify-the-build-process-template-to-use-the-option-trigger-release-from-build.aspx

Advertisements

One thought on “Solving a problem with TFS and building regular applications using TFSBuild

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s