【发布时间】:2017-10-11 00:01:27
【问题描述】:
我们正在为一些项目进行持续集成的配置过程,我们正在使用 TFS,现在我们遇到了一些发布定义的问题。我们希望将在 Build 过程中创建的 Web Deploy 包用于 Deployment。
到目前为止,我们的构建定义如下:
创建包的路径是默认的,所以我们可以在工件目录中找到它。但问题是当我们需要在服务器中为网站提取目标文件夹中的文件时。
我们使用的 Release 定义是: enter image description here
在下载工件阶段的这一部分中,执行发布的代理可以访问构建过程中发布的文件,所以在这里我们知道 .zip 包在哪里,我们可以使用 $(System.ArtifactsDirectory ),但如果我们使用 Deploy IIS App 任务,如您所见,我们正在连接到我们正在执行发布的服务器,并且 $(System.ArtifactsDirectory) 为我们提供了配置代理的工件的本地地址,以及变量给出类似 C:\agent_work\r1\a 的路径,其中 C 是代理的本地路径,并且该地址中不存在 .zip 文件。而且我们无法构建像 \Myserver\$(System.ArtifactsDirectory).... 这样的新路径,因为 $(System.ArtifactsDirectory) 是绝对路径,因此整个路径是:\Myserver\C: \我的文件夹....
我们需要其他解决方案,我们在构建过程中考虑在不同的文件夹中创建包,在这种情况下我们总是知道包在哪里,我们不依赖于代理文件夹,这样我们可以用作 Web 部署包路径:\Myserver\packagefolder\file.zip,但我们想使用不同的解决方案。
有没有办法让工件文件夹具有相对路径或类似的东西????
【问题讨论】:
标签: tfs msbuild continuous-integration release artifact