【问题标题】:TFS 2010 Build Automation and post-build eventTFS 2010 构建自动化和构建后事件
【发布时间】:2016-10-10 22:00:00
【问题描述】:

在我继承的项目中,原始开发人员在他的 Visual Studio 项目中使用了一些构建后事件来复制 DLL 和在 VS 中构建时的内容。

现在我正试图将这些东西移到 TFS 2010 构建系统中,这让我感到有些遗憾。

我希望能够创建一个新的“连续”项目配置,并在该配置中从 Visual Studio 中排除那些构建后事件 - 但这些调用似乎无法根据您的项目配置进行配置... .

有什么想法吗?有什么我可以检查以知道我在 TFS Build 下运行然后跳过那些 CMD 文件吗?任何想法都将受到欢迎!

【问题讨论】:

    标签: visual-studio tfsbuild post-build-event


    【解决方案1】:

    我的方法是用这个来保护构建前或构建后的代码

    IF "$(BuildingInsideVisualStudio)"=="true" ( …你的代码在这里… )

    该变量由 Visual Studio 自动定义,您无需更改构建定义。

    【讨论】:

      【解决方案2】:

      我使用类似的方法来做到这一点。我在每个项目的后期构建步骤中添加以下内容:

      if '$(TeamBuild)'=='True' exit 0
      

      然后在配置构建定义时,我只需添加:

      /p:TeamBuild=True
      

      ...到 MSBuild 参数。

      这让我可以灵活地保留项目中的所有配置和构建定义。

      【讨论】:

      【解决方案3】:

      如果您在团队构建服务器上设置环境变量,然后您可以在构建后的步骤中写入检查以检查该环境变量,该怎么办。如果设置了环境变量,您会知道跳过执行构建后步骤的命令文件,因为您知道您在 TFS 构建下运行。

      您可以将所有后期构建步骤合并到一个脚本中,然后只需检查该脚本开头的环境变量。

      或者您可以以相反的方式执行此操作,并将检查构建到您的 TFS 构建脚本中。您可以参考here 了解如何检查 TFS 构建中的环境变量。

      所以在你的 TFS 构建脚本中你会有类似的东西:

      <RunScripts Condition=" '$(RunScriptsServerVar)' != '' ">
                  the environment var is NOT set, so run your scripts since we aren't in
                  a TFS build
      </RunScripts>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-30
        • 2012-05-18
        • 2018-05-11
        • 1970-01-01
        • 2011-04-19
        • 1970-01-01
        • 2011-06-12
        相关资源
        最近更新 更多