获取工件目录路径作为Release流程的相对路径
Obtain the artifact directory path as a relative path for the Release process
我们正在为一些项目进行持续集成的配置过程,我们正在使用 TFS,现在我们遇到了一些发布定义的问题。我们想使用在构建过程中创建的 Web 部署包进行部署。
到目前为止,我们拥有的构建定义如下:
enter image description here
创建包的路径是默认的,所以我们可以在artifact目录下找到。但是问题是当我们需要提取服务器中网站的目标文件夹中的文件时。
我们使用的版本定义是:
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,但我们想使用不同的解决方案。
有没有办法让工件文件夹具有相对路径或类似的路径????
您可以使用 Windows Machine File Copy 任务将包文件从代理复制到您正在执行发布的服务器。
Use this task to copy application files and other artifacts such as
PowerShell scripts and PowerShell-DSC modules that are required to
install the application on Windows Machines. It uses RoboCopy, the
command-line utility built for fast copying of data.
您可以使用一个临时文件夹来处理代理上的包文件。比如Build.StagingDirectory
。 Build variables
在您的 MSbuild 参数中添加一个包位置,例如 /p:PackageLocation="$(Build.StagingDirectory)\
。然后使用 Windows 计算机文件复制任务将文件从 StagingDirectory 复制到远程服务器中的本地文件夹。
我们正在为一些项目进行持续集成的配置过程,我们正在使用 TFS,现在我们遇到了一些发布定义的问题。我们想使用在构建过程中创建的 Web 部署包进行部署。
到目前为止,我们拥有的构建定义如下:
enter image description here
创建包的路径是默认的,所以我们可以在artifact目录下找到。但是问题是当我们需要提取服务器中网站的目标文件夹中的文件时。
我们使用的版本定义是: 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,但我们想使用不同的解决方案。
有没有办法让工件文件夹具有相对路径或类似的路径????
您可以使用 Windows Machine File Copy 任务将包文件从代理复制到您正在执行发布的服务器。
Use this task to copy application files and other artifacts such as PowerShell scripts and PowerShell-DSC modules that are required to install the application on Windows Machines. It uses RoboCopy, the command-line utility built for fast copying of data.
您可以使用一个临时文件夹来处理代理上的包文件。比如Build.StagingDirectory
。 Build variables
在您的 MSbuild 参数中添加一个包位置,例如 /p:PackageLocation="$(Build.StagingDirectory)\
。然后使用 Windows 计算机文件复制任务将文件从 StagingDirectory 复制到远程服务器中的本地文件夹。