Visual studio 2013 如何每次生成相同的文件夹

Visual studio 2013 如何每次生成相同的文件夹,visual-studio-2013,tfsbuild,Visual Studio 2013,Tfsbuild,在TFS中,内部版本号格式通常如下所示: $(BuildDefinitionName)\ u$(日期:yyyyMMdd)$(版本:.r) 但是,我只想保留1个构建,我希望每次都将其构建到相同的文件夹中。所以我试着把它改成: $(BuildDefinitionName) 但问题是,这只工作一次,然后给出一个错误,即构建编号在此之后已经存在。我希望构建到同一个文件夹,这样我就可以编写一个脚本来压缩最新的构建,将其移动到另一个地方,然后将其解压。如果我不必编写代码来确定最近的文件夹名称,这将变得更容易

在TFS中,内部版本号格式通常如下所示:

$(BuildDefinitionName)\ u$(日期:yyyyMMdd)$(版本:.r)

但是,我只想保留1个构建,我希望每次都将其构建到相同的文件夹中。所以我试着把它改成:

$(BuildDefinitionName)

但问题是,这只工作一次,然后给出一个错误,即构建编号在此之后已经存在。我希望构建到同一个文件夹,这样我就可以编写一个脚本来压缩最新的构建,将其移动到另一个地方,然后将其解压。如果我不必编写代码来确定最近的文件夹名称,这将变得更容易


是否有一种方法可以将生成的文件夹名保持不变?

这是经过设计的,每个完成的生成都应该有一个唯一的生成编号/名称。否则您将得到上面的错误

$(修订版:.r)

使用$(Rev:.rr)确保每个完成的构建都有一个唯一的 名称。生成完成时,如果生成编号中没有其他内容 已更改,则Rev整数值增加1

作为一种解决方法:对于vNext构建,可以在构建管道期间使用任务将构建输出复制到同一文件夹。为了确保始终只获取最新版本,可以在复制任务之前添加一个,以清除/删除该特殊目标文件夹中的文件


对于XAML生成,您需要自定义生成模板,并在生成模板中添加默认的CopyDirectory活动,以将生成结果复制到指定的放置位置。具体步骤请参考本博客。还要添加一个预构建脚本来执行清理操作。

Hmm。。。不能说我熟悉VNEXT或XAML构建,除非这是我通过VisualStudio中的Team Explorer选项卡创建的基础的基础,而我就是没有意识到这一点。@ BVNONE您使用的是什么样的TFS版本?TFS2015或2013或2017?您是在web中还是在VS中创建了内置?Oops,在我添加了visual studio-2013标记之后,没有想到要添加tfs2013标记,但我现在已经添加了它。我从VisualStudioIDE中创建了这个构建。@BVernon您正在使用旧的XAML构建。您可以自定义生成模板,并在生成模板中添加默认的CopyDirectory活动,以将生成结果复制到指定的固定放置位置。一个带有详细步骤的示例,请参考下面链接中的博客:嗨,BVemon,有关于这个问题的更新吗?我的回答是否有帮助或给出了正确的方向?