TFS 2015 Publish Build Artifacts in one directory

15,089

Solution 1

You can use the "Copy File" task and specify the Source Folder in it to achieve this feature. See this question for details: Copy one file in target directory on deploy from visual studio team services

Solution 2

This is still possible, you can pass the following command line argument to your Visual Studio Build or MsBuild task:

/p:OutputPath="$(Build.BinariesDirectory)"

This will instruct the build task to redirect all output to the Binaries Directory, as you were accustomed to from the old XAML builds.

or you can use my MsBuild Helper task from the Visual Studio Market Place to configure the Output Path, then add the $(MsBuildAdditionalArguments) variable to your MsBuild or Visual Studio Build's additional arguments input:

MsBuild Helper Task enter image description here

Visual Studio Build / MsBuild Task enter image description here

Solution 3

Also please try giving this MSBuild argument

 /p:GenerateProjectSpecificOutputFolder=true /p:OutDirWasSpecified=true
 /p:OutputPath=$(Build.BinariesDirectory)
Share:
15,089
ovm
Author by

ovm

Updated on July 01, 2022

Comments

  • ovm
    ovm almost 2 years

    We have just upgraded from TFS 2010 to TFS 2015 and I'm recreating a XAML-Build-Definition in the "vNext" build/workflow-format.

    In the old Build it was possible to output all files (the DLLs) flat in one single directory, without their original directory structure.

    Is this still possible with the new TFS 2015 Build framework?

    I have the following Publish Build Artifact-Settings:

    Artifact Type: File Share

    Path: \\server\tfslib\$(Build.DefinitionName)\$(Build.DefinitionName)_$(Build.BuildNumber)

    The problem is that the original solution directory structure is preserved in the output directory specified in Path. How can I get the output without the whole subtree?

    As a workaround I'm currently doing this with a Powershell step after the Publish Build Artifact but it would be nice to do this during the publishing process itself.