【问题标题】:TFS server build vs. local visual studio build differencesTFS 服务器构建与本地 Visual Studio 构建差异
【发布时间】:2013-02-22 11:20:24
【问题描述】:

在使用 TFS 之前,我们使用 Visual Studio 在本地构建包。有很多项目被组织成解决方案。当我们想要构建包时,我们只需找到 ccproj 项目,右键单击它并点击“包”。

我们的解决方案中有几个具体的:

  • 我们在多个网站和虚拟应用程序中使用 Web 角色,并将它们作为 VS2012 解决方案中的项目依赖项
  • 我们对 Web 和辅助角色都使用配置转换。工人角色转换是通过手动将转换目标添加到项目文件来实现的。
  • 我们还有一些额外的类库项目——它们的输出需要与正确的配置文件一起放入工作角色的子文件夹中,这是一种插件架构。我们使用一些 xcopy 命令将这些未引用的库包含在我们的工作角色中。

在本地构建 VS 2012 时一切正常。

迁移到 TFS 后,我们很快了解到我们将无法在构建服务器上复制相同的构建过程

  • 事实证明,TFS 没有保留解决方案结构,更多 详情在这里: http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/9ac815c8-5961-4670-a6d0-660a9b66da9c
  • 解决多个网站的项目依赖和 单一角色的虚拟应用程序无法在构建服务器上运行, 可能是因为输出目录不同。我们不得不添加一些 在我们的 ccproj 和 csproj 文件中进行黑客攻击,以获得这些文件的发布和 正确包含在生成的包中。
  • xcopy 命令失败,因为目录结构不同 TFS 构建服务器。
  • 我们必须通过显式添加强制在 TFS 构建服务器上运行 cspack /t:将参数发布到 msbuild 命令行。
  • 工作角色的配置转换不起作用,我们不得不强制 使用 ccproj 和 csporj 文件中的另一个 hack 会发生。
  • 还有更多问题,但这些问题太详细了。我会坚持下去 高水平只是为了说明整个问题。以某种方式构建 现在可以工作了,但我们现在有很多技巧。

我有两个问题:

  1. 是否可以将 TFS 构建服务器配置为完全相同 作为 VS2012 中的本地构建的行为?
  2. 是否有任何官方解决方案可以在单个 Web 角色中构建具有多个网站和虚拟应用程序的 Azure 包?

【问题讨论】:

    标签: azure tfs msbuild


    【解决方案1】:

    我还没有在 TFS 构建服务器上尝试过这个,但是我的博客 http://michaelcollier.wordpress.com/2013/01/14/multiple-sites-in-a-web-role/ 中概述的方法运行良好。 “技巧”基本上是修改 .ccproj 文件以利用 CoreBuildDependsOn 目标,添加将对辅助站点执行 MSBuild 的逻辑。这也应该允许配置转换工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多