【问题标题】:Get TFS version programmatically以编程方式获取 TFS 版本
【发布时间】:2015-11-27 17:47:47
【问题描述】:

如何以编程方式获取 TFS 版本?

我正在尝试获取 TFS 管理控制台中显示的版本。

我尝试了以下代码,但它返回的服务器版本为“服务器版本:Dev14.M89-Part7”,这似乎不正确。

var server = new TfsTeamProjectCollection(new Uri("http://tfs2015:8080/tfs"));
server.EnsureAuthenticated();
var serverVersion = server.ServerDataProvider.ServerVersion;
Console.WriteLine("Server Version: {0}", serverVersion);

我想我正在查看错误的属性...

【问题讨论】:

    标签: tfs tfs-sdk


    【解决方案1】:

    我使用的是 Microsoft.TeamFoundation.Server.dll 版本号,然后是来自 link 的表格。

    【讨论】:

    • 如果链接失效,那么您的答案就失去了价值。请将链接中的相关部分添加到您的答案中。
    • 如果您的应用程序在两个版本的 TFS 之间使用,这种 dll 版本号方法将不起作用。
    【解决方案2】:

    不幸的是,没有可以调用的统一方法来简单地告诉您“您正在与版本 X 的 TFS 通信”。为了确定您正在与哪个版本的服务器交谈,我们将使用有关查询服务的原则以及有关每个版本中可用服务的一些知识。

    查看此博客:http://blogs.msdn.com/b/taylaf/archive/2010/01/05/determining-the-tfs-server-version-using-client-apis.aspx

    【讨论】:

      【解决方案3】:

      另一种方法是从 DLL 中选择版本号,但需要通过 PSExec、CIFS/SMB 或 Powershell Remoting 访问服务器。

      C# 代码应该类似于

      using (var tfsBaseKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\TeamFoundationServer"))
      {
          var versionKeys = tfsBaseKey.GetSubKeyNames();
          double dummy;
          double maxVersion = versionKeys.Max(x => double.TryParse(x, out dummy) ? dummy : 0.0);
          var latestVersionKey = maxVersion.ToString("#.0");
          using (var tfsKey = tfsBaseKey.OpenSubKey(latestVersionKey))
          {
              string tfsInstallPath = tfsKey.GetValue("InstallPath").ToString();
              string refAssemblyPath = Path.Combine(tfsInstallPath, @"Application Tier\Web Services\bin\Microsoft.TeamFoundation.Server.Core.dll");
              var refAssembly = Assembly.ReflectionOnlyLoadFrom(refAssemblyPath);
              var fileVer = refAssembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false).FirstOrDefault() as AssemblyFileVersionAttribute;
      
              return fileVersion.Version;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2016-09-16
        • 1970-01-01
        • 2010-12-17
        • 2010-09-08
        • 1970-01-01
        • 2011-04-15
        • 2019-03-23
        • 2021-08-20
        • 2014-08-17
        相关资源
        最近更新 更多