0

I have a TFS build configuration that build a solution with 36 projects. They are categorized in various platforms such as "Tests", "WPF" and "WinRT". I need to have my drop location configured with the following structure:

/Solution
    /Tests
        /Project1.dll
        /Project2.dll
        /Project3.dll
    /WPF
        /Project4.dll
        /Project5.dll
        /Project6.exe
    /WinRT
        /Project7.dll
        /Project8.dll
        /Project9.exe

I have tried to setup a custom output directory per project and shared the same directory for all projects in a specific platform, but this causes the build to fail when two of those projects copies shared dependencies in the build directory. Since two MSBuild instances can try to copy the files at the same time, one of them can triggers an access denied error because the other instance is still writing the file.

If I could have a different build and drop location structure, I could keep the default structure for the build directory and only have the drop process copy the final files and skip the duplicated dependencies. Is there a way to customize the drop location different structure than the build location? How can I achieve such a setup?

4

2 回答 2

2

The default TFS Build mashes all outputs together into one directory.

What I typically do is write a powershell script that will move around all the files in that one big directory into the folder structure that I want. I'll check that script into TFS, and customize my TFS Build to run that powershell script as the last step (right before it copies the folder from $(SourcesDirectory)\Binaries -> $(BuildDropDirectory)).

于 2013-05-23T16:16:44.093 回答
1

Check out the discussion here about custom output directories. HTH

于 2013-05-23T05:48:50.957 回答