TFS服务器构建与本地Visual Studio构建差异

时间:2013-03-07 10:02:52

标签: azure tfs msbuild

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

我们的解决方案中有几个特定的​​内容:

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

在VS 2012本地建设时,一切顺利。

迁移到TFS时,我们很快就知道我们将无法在构建服务器上复制相同的构建过程

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

我有两个问题:

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

1 个答案:

答案 0 :(得分:0)

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

相关问题