在VSTS Build / Release中复制app.publish文件夹

时间:2016-08-18 19:44:32

标签: visual-studio msbuild clickonce azure-devops tfsbuild

与此处的问题类似:Copy one file in target directory on deploy from visual studio team services,我试图通过VSTS构建/发布来复制ClickOnce应用程序的app.publish目录的内容。

这是Build 的Copy Publish Artifact步骤 Copy Publish Artifact Step

这显然会将bin文件夹中的所有内容输出到服务器共享上的drop文件夹。

这是发布的“复制文件”步骤 Copy Files Step

这只复制app.publish文件夹中的文件,但它会将整个层次结构构建到文件夹app.publish文件夹中;但是,它构建了完整的文件夹结构。即bin \ Release \ app.publish或bin \ Debug \ app.publish。

我喜欢能够发布和存储不同配置(调试/发布)的想法,但我不喜欢我必须在msbuild参数中指定InstallUrl才能获取调试/发布文件夹路径。即使我没有尝试维护多个配置,配置仍然在路径中。

所以我的问题是:有没有办法使用复制文件任务将app.publish文件夹和/或内容复制到另一个位置,而不创建完整的层次结构?

2 个答案:

答案 0 :(得分:0)

您需要在复制文件的源文件夹中指定复制根目录,在您的示例中,复制根应该是:

源文件夹: $(System.DefaultWorkingDirectory)\$(Build.DefinitionName)\bin\$(BuildConfiguration)\

内容: **\app.publish\**

这样,您的目标文件夹中应该只有app.publish。

答案 1 :(得分:0)

将构建定义中“复制发布工件”步骤的“复制根目录”配置为构建配置文件夹的路径,将“内容”配置为“**”。

例如,如果构建输出的路径是:

  

C:\一个\ 1 \ S \ SolutionFolder \ ProjectFolder \ BIN \ RELASE \ app.publish ...

您可以将复制根设置为:

  

$(build.sourcesdirectory)\ SolutionFolder \ ProjectFolder \ BIN \ $(BuildConfiguration)

内容设置为:

  

**