0

我的 Visual Studio 2013 Release Management Client/Server 版本是 Release 4.0。我正在使用 ReleaseTfvcTemplate.12.xaml 模板。使用基于 AGENT 的发布模板时,有没有办法从发布管理组件(部署者配置)访问系统变量?当我尝试传递 $applicationPath 或 $(applicationPath) 或 $(ApplicationPath) 时,我得到 NULL。

这是我在 RM 中部署具有自定义 powershell 部署脚本的组件的状态:

  1. 我可以成功排队发布版本
  2. 构建输出正确复制到 \servername\BuildDrop\
  3. 我有一个基于 AGENT(不是 VNEXT)的 RM 模板,它在构建完成时触发
  4. 构建正确触发 RM 模板发布构建
  5. 此 RM 模板有一个通过 CUSTOM powershell 脚本部署的组件
  6. powershell 脚本需要 builddrop 位置的完整绝对路径才能执行其工作(powershell 脚本所做的与讨论无关)示例:在我的 RM 中组件的部署配置中,我需要传递 TFS 构建放置位置而无需对其进行硬编码
  7. 根据MSDN 文档,有一个系统变量 $applicationPath 由 RM 水合,但仅在使用基于 VNEXT 的模板时才使用,而不是基于代理的模板
  8. 根据此处接受的与从基于代理的 RM 模板访问系统变量相关的 StackOverflow 答案,看来 MSDN 文档并没有说明整个故事,我应该能够在我的组件部署配置中设置一行(见下文)尝试将 TFS 系统变量传递给组件 Powershell 部署程序
4

1 回答 1

2

正如 Graham 在评论中提到的,构建输出是在本地复制的,它是执行 Powershell 时的工作目录。

您也可以使用它来访问构建放置位置:$(PackageLocation) http://incyclesoftware.zendesk.com/entries/24422737-Deployment-Metadata

刚刚找到了来自 Donovan Brown 的最新帖子:http: //donovanbrown.com/post/What-are-the-System-variables-for-PS-DSC-deployments-in-Release-Management.aspx

于 2015-02-23T18:53:07.273 回答