【问题标题】:TFS 2010 Build DefinitionTFS 2010 构建定义
【发布时间】:2011-01-20 09:38:03
【问题描述】:

在 TFS 2010 构建定义窗口中,“进程”下有两个必填项。它们是“要构建的配置”和“要构建的项目”。在要构建的项目下,我可以输入以下内容:

$/TeamProject/Area1/Area2/*

但是,这似乎并没有达到我的预期。构建失败,因为它正在寻找:

$/TeamProject/Area1/Area2/Sources/*

我试图通过此实现的是构建该领域下的所有解决方案。例如,我有:

$/TeamProject/Area1/Area2/Solution1/Solution1.sln
$/TeamProject/Area1/Area2/Solution2/Solution2.sln
$/TeamProject/Area1/Area2/Solution3/Solution3.sln

还有比这更多的解决方案,这就是为什么我正在寻找一种方法来递归地构建指定路径下的所有解决方案。有没有办法在 TFS 2010 中做到这一点?

【问题讨论】:

    标签: tfs build-definition


    【解决方案1】:

    您可以修改流程模板。使用匹配文件(我现在没有确切的命名)活动来扩展它。添加一个参数,将您在构建定义中设置的信息传递给 MacingFiles 活动。然后将 MatchingFiles 活动找到的文件传递给构建解决方案活动,而不是您在构建定义中输入的参数。

    现在在构建定义中为要构建的解决方案添加一个虚拟解决方案(不再使用它)。

    有关自定义构建过程模板的更多信息,请参阅blog post series on the build customization

    【讨论】:

      【解决方案2】:

      FWIW, 我有:“要构建的配置”空白 在“要构建的项目”下,我通过省略号按钮添加了我的解决方案

      【讨论】:

        【解决方案3】:

        我会为

        设置映射
        $/TeamProject/Area1/Area2/Solution1/    
        $/TeamProject/Area1/Area2/Solution2/    
        $/TeamProject/Area1/Area2/Solution3/
        

        然后在构建定义中输入要构建的三个项目

        $/TeamProject/Area1/Area2/Solution1/Solution1.sln
        $/TeamProject/Area1/Area2/Solution2/Solution2.sln
        $/TeamProject/Area1/Area2/Solution3/Solution3.sln
        

        您可以将要构建的配置保留为空白,或者如果您想要进行某个构建,您可以将其设置为(例如)类似 Debug|Mixed Platforms 的内容(检查您的配置管理器...了解您的解决方案构建看看什么是有效的)

        或者,您可以只映射以下内容(取决于您在此文件夹中的数量,如果您有不想触发构建的解决方案 4+,请不要在此级别执行此操作)

        $/TeamProject/Area1/Area2
        

        并拥有一个包含解决方案 1、解决方案 2 和解决方案 3 的解决方案,然后构建它。

        默认构建映射到的解决方案1

        $/TeamProject/Area1/Area2
        

        在构建代理上,其工作目录将类似于:

        $(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)
        

        你最终会在下面构建它

        C:\Builds\1\Solution1\Binaries
        C:\Builds\1\Solution1\Sources
        C:\Builds\1\Solution1\TestResults
        

        这就是为什么你要确保你的 OutDir 等都是正确的并且没有硬编码!

        如果您在构建时查看,您会看到构建代理填充 Sources 文件夹,并且它应该(如果配置正确)将所有输出放入 Binaries 文件夹(然后将它们复制到配置下的放置文件夹TFS 中的默认值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-04
          • 1970-01-01
          • 2011-05-04
          • 1970-01-01
          • 2011-02-23
          • 1970-01-01
          • 2011-10-28
          • 1970-01-01
          相关资源
          最近更新 更多