检索解决方案的路径?

时间:2012-03-02 16:33:18

标签: tfs tfsbuild

我们目前正在为公司设置Team Build 2010,我正在尝试使用工作流活动来检索正在构建的当前解决方案的确切本地路径。我还没有找到获得此值的方法,有没有人知道如何(没有编写自定义活动)?

服务器或本地路径中的任何一个都足够(即$/TeamProject/Branch/OurProjectC:\TeamBuild\src\path\to\branch\OurProject),因为我们可以在服务器项上使用转换活动。

我们需要此路径的原因是更新版本信息文件,并且只需要为正在构建的当前解决方案完成,并且文件具有相同的名称(例如,AssemblyInfo.cs)。

在这个similar question中,解决方案是定义一个参数,但由于此信息特定于正在构建的解决方案而不是某些外部路径,因此我们希望此信息可以检索。

2 个答案:

答案 0 :(得分:4)

您可以在不添加任何内容的情况下检索此特定信息。如果您在构建过程模板中导航到MSBuild发生的位置,您将看到将要构建的解决方案设置为名为localProject的字符串。
这将包含TFS下载SLN的本地路径,例如C:\TeamBuild\src\path\to\branch\OurProject\OurProject.sln

打开XAML并导航至:

Run On Agent
  Try Compile, Test, and Associate Changesets and Work Items
    Compile, Test, and Associate Changesets and Work Items
      Try Compile and Test
        Compile and Test
          For Each Configuration in BuildSettings.PlatformConfigurations
            Compile and Test for Configuration
              If BuildSettings.HasProjectsToBuild
                For Each Project in BuildSettings.ProjectsToBuild
                  Try to Compile the Project
                    Compile the Project
                      Run MSBuild for Project

如果您选择Run MSBuild for Project&点击F4你看到它。

为了检索您的内容,您可以在构建过程模板&中定义另一个字符串变量solutionPath。在Run MSBuild for ProjectAssign个活动下插入一半与To : solutionPathValue : Path.GetDirectoryName(localProject)

答案 1 :(得分:2)

  1. 您是否看过TFS Community Build Extensions,它们会为您提供开箱即用的程序集版本?

  2. 您可以使用名为SourcesDirectory的变量来获取Build Server上的当前源目录。您还可以使用ConvertWorkspaceItem活动在服务器和本地路径之间进行转换。

  3. 还有一篇博文文章涵盖了所有here