关于 Visual Studio 2015:当部署代理运行组件时如何控制 Release Management 复制的文件

How to control the files that Release Management copies when the Deployment Agents runs a Component

我正在使用 MS 发布管理和基于代理的部署。我的模板通常在单个模板中部署一个网站和一个数据库。我还在发布模板中使用的清单中添加了一些脚本。

我注意到,使用我添加的一些内置组件和脚本,RM Server 将整个 TfsBuidDrop 复制到目标服务器上部署代理的工作区,用于模板中的每个组件。

例如,发布数据库的组件是一个简单的工具,它使用数据库的 .dacpac 更新数据库。该组件被配置为使用 .dacpac 文件和几个其他参数来完成它。如果我查看目标服务器上的 RM 代理工作区,我会看到整个 TfsBuildDrop 文件夹被复制到此组件的工作区,即使代理只需要单个 .dacpac 文件。

我注意到我为正在使用的脚本创建的组件具有相同的行为。正在将整个 TfsBuildDrop 文件夹复制到发布模板中每个组件的目标服务器。

有没有办法限制 RM 服务器复制到目标服务器的文件?对于我的一些发布模板,每次部署都会将整个 build-drop 文件夹复制到服务器 5-6 次。


这更多是关于您如何组织构建的问题。如果您在组件中指定 \\ 作为组件二进制文件的路径,它将递归复制整个构建放置文件夹。这是 100% 设计的。

编写一个快速的 Powershell 脚本并将其作为构建后步骤运行,以将 *.dacpac 复制到 \\DACPAC\\ 文件夹。然后你可以将你的组件指向那个文件夹,它只会复制那些文件。