使用变量提取MSDeploy Zip包

时间:2018-01-28 08:19:05

标签: msbuild azure-devops azure-pipelines

我正在VSTS中设置一个自动构建,将已发布的文件FTP到我的服务器。

我有这个工作,但我实现它的方式,我觉得是hacky和不可持续。

从屏幕截图中可以看到,该过程将发布包含自述文件,cmd文件和包含所有发布文件的zip文件的文件,然后我将使用下面非常明确的位置提取ZIP。

  

$(Build.ArtifactStagingDirectory)\ TEMP \内容\ d_C \一个\ 1 \ S \ IntermittentBug \ IntermittentBug \ OBJ \ Release_EukHosts \包\ PackageTmp

我在VSTS中使用托管构建服务器,但路径包含

  

d_C \一个\ 1 \ S \

我认为这会及时改变。我需要的是一个变量来满足这条路径,所以它总能成功。

如何更新此功能以提高效率和可持续性?

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:3)

首先,正如jessebouwing所说,该变量被称为Build.SourcesDirectory

关于路径结构,简单的方法是在 Visual Studio Build 任务中指定/p:PackageTempRootDir="" msbuild参数来删除源路径结构,然后路径就像Content\D_C\PackageTmp

另一方面,您还可以通过文件系统模式发布网络应用。

答案 1 :(得分:2)

此变量位于名为Build.SourcesDirectory的预定义变量中。请参阅complete list of predefined variables here

在批处理或powershell脚本中,此变量可用作名为%BUILD_SOURCESDIRECTORY% / $env:BUILD_SOURCESDIRECTORY的环境变量。