【问题标题】:Team Foundation Server: Execute Powershell scripts/commands to build instead of msbuildTeam Foundation Server:执行 Powershell 脚本/命令来构建而不是 msbuild
【发布时间】:2013-12-02 13:02:14
【问题描述】:

我有大量项目(300 多个),并且我有 Powershell 模块命令来构建这些项目。这些 PS 模块正在包装 MsBuild.exe 并在命令提示符下成功运行。

但是,我正在尝试找到一种将这些构建命令放入 TFS 的方法,以便我可以通过 TFS 在团队成员之间安排构建(滚动构建)。

到目前为止,我无法从一些合适的选项开始使用 Powershell 脚本/命令从 TFS 而不是 Msbuild 调用。

唯一的解决方案猜测:是我可能需要创建一些 OurBuild.Proj 文件并使用 Msbuild 任务来指定我们的 Powershell 命令,然后设置 OutBuild.proj 文件以在我的构建定义中构建。

但我不确定是否可以这样调用 Powershell 脚本/命令。因为这些脚本会在启动时通过调用“%VS100COMNTOOLS%”VsVars32.bat 来设置环境时进一步调用 Msbuild.exe。

谁能给我们一个先机或指出一些好的教程/指南?

【问题讨论】:

  • 您应该认真考虑是否可以不使用 PowerShell 脚本并仅使用标准项目文件。否则,您将始终处于新环境中“试图使 PowerShell 脚本正常工作”的位置。您的技术也使您无法进行仅引用 .sln 文件的简单构建。
  • @JohnSaunders。目的是在命令行上构建项目,并且可以在构建服务器上远程安排。所以我只是想在这两种情况下都使用单个过程(即 Powershell 模块)。在命令行中,它就像一个魅力。
  • MSBUILD 能够进行命令行构建。你在逆潮流航行。
  • @JohnSaunders 我已经在 Powershell 模块中用它的命令行参数包装了 MSBuild,所以实际上潮在我的罐子里。 :)
  • 现在您正在谈论 TFS 构建,因此您可以创建构建定义以使用必要的参数调用 MSBUILD - 但如果它由 PowerShell 包装,则不需要创建自定义构建活动。

标签: powershell tfs msbuild


【解决方案1】:

由于您可以构建自己的构建过程 xaml 文件,因此您可以让它看起来像您想要的任何东西。我发现在源代码控制中打开DefaultBuildProcessTemplate.xaml 然后从那里开始是最容易的。获取源、设置和选择构建代理等基础知识可以保持原样,但是围绕构建项目的逻辑以及可能运行测试,您可以取出并根据自己的喜好进行定制。调用 powershell 脚本实际上非常简单(您可能想查看 2013 模板,了解如何设置它。

从报告的角度来看,您可能需要做一些额外的工作,以确保您的平台和配置正确地从构建转移到对 MsBuild 的调用(在您的 powershell 中),通常 Team Build 还会提供一组额外的记录器,以确保警告和错误正确地出现在数据仓库中。

为您提供涵盖所有内容的详尽答案将是一项艰巨的工作,因此请从这里开始,并在遇到困难时提出其他问题。

推荐阅读:

【讨论】:

  • 感谢您提供如此有用的详细回复。现在包括学习曲线。肯定会去的..
猜你喜欢
  • 2020-01-18
  • 2010-10-03
  • 2013-07-02
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
相关资源
最近更新 更多