【问题标题】:TFS 2010: Copy _PublishedWebsites to test serverTFS 2010:将 _PublishedWebsites 复制到测试服务器
【发布时间】:2012-04-11 04:35:39
【问题描述】:

我看到过类似的问题和答案,但发现它们并不是我真正想要的。

我有一个包含多个 Web 项目的大型解决方案。所有 Web 项目都共享一些公共代码,因此它们都是同一个解决方案的一部分(它们都引用了一个公共项目)。

我一直在 Team Foundation Server 2008 上运行,我们正在升级到 TFS 2010,以便为迁移到 Visual Studio 2010 和 .net 4.0 做好准备。

我通过创建一个新版本使该版本与 2010 版本一起使用,因为我们只有一个我想要重现的自定义设置。

构建完成后,我将文件转储到

\\SERVER\tfsdump\devel2010 build\devel2010 build_20101008.3\_PublishedWebsites

通过使用转储文件夹选项,但构建位置是

C:\Builds\1\Web Applications\devel2010 build\Binaries\_PublishedWebsites

我只想在构建完成后将 _PublishedWebsites\SiteA 复制到 \ServerA\ShareA 并将 _PublishedWebsites\SiteB 复制到 \ServerB\ShareB

因为只有一个构建代理,我只需要调用一个批处理文件来运行副本,但为了便于我的开发人员使用,我需要在每次构建后调用这个批处理文件。这是可能的还是有更好的解决方案?

为了使事情变得更加困难,该网站仍然是 2008 年的项目,并且要求它保持这种状态,直到我们可以在 VS 2010 下对其进行全面测试。

【问题讨论】:

    标签: deployment


    【解决方案1】:

    使用CopyDirectory 构建活动,将Source 属性设置为等于BuildDetail.DropLocation + "\_PublishedWebsites\SiteA",并将Destination 属性设置为您想要的位置。我已将此活动作为构建过程中的最后一个活动,并且它可以正常工作。

    【讨论】:

    • 谢谢我最终得到了一份来自 BinariesDirectory + "_PublishedWebsites\SiteA" TO "\\PC\devel2010" 的副本,为了节省时间并删除了默认放置。
    • 看起来不错!我们可以更进一步,消除硬编码的 SiteA 目录名称吗? TFS 构建模板中可用的 TFS 对象上是否有一个属性可以让您获取网站项目名称?
    【解决方案2】:

    从 Afshar 的回答中得到提示,对于直接编辑 XAML 模板文件的人,在复制到放置位置成功后创建一个新序列:

    DisplayName="Something" Source="[BuildDetail.DropLocation + "_PublishedWebsites\SiteA " ]" />

    里面的引号应该写成&quot和分号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 2012-02-23
      • 2017-04-06
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多