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.
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
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:
Also please try giving this MSBuild argument
/p:GenerateProjectSpecificOutputFolder=true /p:OutDirWasSpecified=true
/p:OutputPath=$(Build.BinariesDirectory)
来源:https://stackoverflow.com/questions/34852472/tfs-2015-publish-build-artifacts-in-one-directory