10

我们刚刚从TFS 2010to升级TFS 2015,我正在以“vNext”构建/工作流格式重新创建 XAML-Build-Definition。

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

使用新的 TFS 2015 Build 框架是否仍然可以做到这一点?

我有以下- 设置Publish Build Artifact

Artifact Type: File Share

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

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

作为一种解决方法,我目前正在使用 Powershell 步骤执行此操作,Publish Build Artifact但最好在发布过程本身期间执行此操作。

4

3 回答 3

7

您可以使用“复制文件”任务并在其中指定源文件夹来实现此功能。有关详细信息,请参阅此问题:从 Visual Studio 团队服务部署时复制目标目录中的一个文件

于 2016-01-26T08:06:11.970 回答
4

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

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

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

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

MsBuild 助手任务 在此处输入图像描述

Visual Studio 构建/MsBuild 任务 在此处输入图像描述

于 2016-12-18T20:49:51.867 回答
1

也请尝试给出这个 MSBuild 参数

 /p:GenerateProjectSpecificOutputFolder=true /p:OutDirWasSpecified=true
 /p:OutputPath=$(Build.BinariesDirectory)
于 2017-08-01T11:57:20.097 回答