2017-05-11 27 views
0

我们在配置过程中工作的一些项目中,我们使用TFS,现在我们有一些版本的定义问题的持续集成相对路径神器目录路径。我们希望使用在生成过程中为部署创建的Web部署包。获得尽可能释放的过程

到目前为止,我们已经构建定义如下:

enter image description here

为创建包的路径是默认的,所以我们能够找到它的神器目录内。但问题是,我们需要将文件解压到服务器中网站的目标文件夹中。

,我们正在使用的版本定义是: 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: \ MyFolder文件....

我们需要其他的解决方案,我们在构建过程中考虑在不同的文件夹中创建的包,在这种情况下,我们总是知道哪里是包,我们不依赖于代理文件夹,并以这种方式我们可以使用Web部署包路径:\ Myserver \ packagefolder \ file.zip,但我们想使用不同的解决方案。

有没有办法有一个相对路径或类似这样的东西神器文件夹????

回答

0

你可以使用Windows Machine File Copy任务包文件从代理复制到服务器,你正在做的释放。

使用此任务可以复制应用程序文件和其他文物,如所需要的 安装在Windows机器应用 PowerShell脚本和PowerShell的DSC模块。它采用ROBOCOPY,为数据的快速复制建造的 命令行实用程序。

您可以使用临时文件夹处理代理上的包文件。如Build.StagingDirectoryBuild variables

在你的MSBuild参数添加packagelocation如/p:PackageLocation="$(Build.StagingDirectory)\\。然后使用Windows计算机文件复制任务将文件从StagingDirectory复制到远程服务器中的本地文件夹。