以编程方式同步 .Net 6+ 或更高版本的 TFS 工作区

问题描述 投票:0回答:1

以下代码适用于使用 Nuget Microsoft.TeamFoundationServer.ExtendedClient Version="16.205.1" 的 .Net 4.8

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.VisualStudio.Services.WebApi;
using Microsoft.VisualStudio.Services.Common;

namespace TfsWorkspaceGet
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create VSS credentials
            VssBasicCredential vssCred = new VssBasicCredential(
                "valid userid", 
                "valid PAT token");

            // connect to TFS
            var tfsCollection = new TfsTeamProjectCollection(new Uri("https://someorg.com/tfs/projects"));
            tfsCollection.EnsureAuthenticated();

            //connect to Azure DevOps using the basic credentials
            var connection = new VssConnection(new Uri(tfsUrl), vssCred);

            var versionControlServer = tfsCollection.GetService<VersionControlServer>();

            // Create a workspace
            Workspace workspace = versionControlServer.CreateWorkspace("tmpTfsWorkspace");

            // Map the server path to the local path
            workspace.CreateMapping(new WorkingFolder(
                "$/SomProj/Mainline/DEV/SomeComponent", 
                @"D:\WS\SomProj\Mainline\DEV\SomeComponent"));

            // Get the latest version
            workspace.Get();
        }
    }
}

我试图将其升级为与 .Net 6+ 一起使用...但不成功

  • 仅升级 Nuget 以使用 .Net 兼容的 Microsoft.TeamFoundationServer.ExtendedClient Version="19.225.1" 显示多个类丢失,例如
    • TfsTeamProjectCollection,
    • 获取服务
    • 工作区 大多数在线示例似乎都以 Git 为中心。 我得到的最接近的是使用
      connection.GetClient<TfvcHttpClient>
      尽管它确实符合工作空间设置并满足需求

对此有任何帮助或指示吗?

tfs .net-6.0 .net-7.0 workspace tfs-sdk
1个回答
0
投票

我可以使用您的脚本重现该问题。问题的原因是

Microsoft.TeamFoundationServer.ExtendedClient
软件包不支持Net Standard Client OM。

enter image description here

根据 .NET 客户端库

Microsoft.TeamFoundationServer.ExtendedClient:使用和管理客户端应用程序中的版本控制、工作项、构建以及其他资源。 此软件包不支持 Net Standard Client OM。仅当我们的 REST API 不提供您所需的功能时才使用此包(例如,在 TFVC 中创建工作区)

还有

此包包含我们较旧的 SOAP 对象模型,已将其替换为较新的 REST 对象模型。我们不再投资旧的 SOAP 对象模型,并且 没有计划创建它的 NetStandard 版本

根据目前的情况,建议您保留

.Net 4.8

© www.soinside.com 2019 - 2024. All rights reserved.