TFS 2015 在一个目录中发布构建工件

TFS 2015 Publish Build Artifacts in one directory

我们刚刚从 TFS 2010 升级到 TFS 2015,我正在 "vNext" build/workflow-format 中重新创建 XAML-Build-Definition。

在旧版本中,可以将所有文件(DLL)平放在一个目录中,而无需其原始目录结构。

新的 TFS 2015 Build 框架是否仍然可行?

我有以下 Publish Build Artifact- 设置:

Artifact Type: File Share

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

问题是原始解决方案目录结构保留在 Path 中指定的输出目录中。如何在没有整个子树的情况下获得输出?

作为解决方法,我目前正在 Publish Build Artifact 之后使用 Powershell 步骤执行此操作,但最好在发布过程中执行此操作。

您可以使用"Copy File"任务并在其中指定源文件夹来实现此功能。有关详细信息,请参阅此问题:

这仍然是可能的,您可以将以下命令行参数传递给您的 Visual Studio Build 或 MsBuild 任务:

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

这将指示构建任务将所有输出重定向到二进制文件目录,正如您在旧 XAML 构建中所习惯的那样。

或者您可以使用 Visual Studio Market Place 中的 MsBuild Helper task 配置输出路径,然后将 $(MsBuildAdditionalArguments) 变量添加到您的 MsBuild 或 Visual Studio Build 的附加参数输入:

MsBuild 帮助程序任务

Visual Studio 生成/MsBuild 任务

另外请尝试给出这个 MSBuild 参数

 /p:GenerateProjectSpecificOutputFolder=true /p:OutDirWasSpecified=true
 /p:OutputPath=$(Build.BinariesDirectory)