C# 仅从工作区下载所需的解决方案

C# 仅从工作区下载所需的解决方案,c#,tfs,version-control,C#,Tfs,Version Control,我有一段代码,用于设置工作空间并以编程方式从tfs工作空间下载文件。我想扩展以指定在该工作空间中可以下载哪些解决方案。你知道我该怎么做吗 private GetStatus DownloadLatestFiles() { Workspace workspace = null; try { workspace = SetupWorkSpace(); workspace.Map(_reposi

我有一段代码,用于设置工作空间并以编程方式从tfs工作空间下载文件。我想扩展以指定在该工作空间中可以下载哪些解决方案。你知道我该怎么做吗

private GetStatus DownloadLatestFiles()
    {
        Workspace workspace = null;

        try
        {
            workspace = SetupWorkSpace();

            workspace.Map(_repositoryCredentials.RepositoryProjectPath, _repositoryCredentials.WorkingDirectory);
            GetRequest request = new GetRequest(new ItemSpec(_repositoryCredentials.RepositoryProjectPath, RecursionType.Full), VersionSpec.Latest);

            return workspace.Get(request, GetOptions.GetAll | GetOptions.Overwrite);
        }
        catch
        {
            throw;
        }
    }

    private Workspace SetupWorkSpace()
    {
        VersionControlServer sourceControl = SetupVersionControlRepositoryConnection();
        Workspace workspace = sourceControl.QueryWorkspaces(
                 Environment.MachineName,
                 sourceControl.AuthorizedUser,
                 Environment.MachineName).SingleOrDefault();

        if (workspace == null)
        {
            workspace = sourceControl.CreateWorkspace(Environment.MachineName, sourceControl.AuthenticatedUser, "newworkspace");
        }

        return workspace;
    }
我做了一个改变,所以现在它显示

private GetStatus DownloadLatestFiles()
    {
        Workspace workspace = null;
        GetStatus status = null;

        try
        {
            workspace = SetupWorkSpace();
            List<Solution> services = _serviceList.GetAll();

           foreach (Solution solution in services)
            {
                WorkingFolder workingFolder = new WorkingFolder(ConvertLocalToTfsPath(solution), GetSolutionFolder(solution));
                workspace.CreateMapping(workingFolder);

                //GetRequest request = new GetRequest(new ItemSpec(_repositoryCredentials.RepositoryProjectPath, RecursionType.Full), VersionSpec.Latest);
                //status = workspace.Get(request, GetOptions.GetAll | GetOptions.Overwrite);
                status = workspace.Get();
            }
        }
        catch
        {
            throw;
        }

        return status;
    }
private GetStatus DownloadLatestFiles()
{
工作空间=空;
GetStatus status=null;
尝试
{
工作空间=设置工作空间();
列表服务=_serviceList.GetAll();
foreach(服务中的解决方案)
{
WorkingFolder WorkingFolder=新工作文件夹(ConvertLocalToTfsPath(解决方案)、GetSolutionFolder(解决方案));
workspace.CreateMapping(workingFolder);
//GetRequest=new GetRequest(新的ItemSpec(_repositoryCredentials.RepositoryProjectPath,RecursionType.Full),VersionSpec.Latest);
//状态=workspace.Get(请求,GetOptions.GetAll | GetOptions.Overwrite);
status=workspace.Get();
}
}
抓住
{
投掷;
}
返回状态;
}

目前仍下载所有文件。

只需添加以下代码:

     var workspace = sourceControl .CreateWorkspace("workspaceName","workspaceOwner");

        String ServerFolder = @"$/TeamProject/Solution1";
        String LocalFolder = @"D:\Folder\";

        WorkingFolder workfolder = new WorkingFolder(ServerFolder,LocalFolder);
        workspace.CreateMapping(workfolder);

        workspace.Get();

有关详细信息,请参阅本文:

我找到了答案。只是对上面的答案做了一点修改

private List<GetStatus> DownloadLatestFiles()
    {
        Workspace workspace = null;
        List<GetStatus> statusResult = new List<GetStatus>();

        try
        {
            workspace = SetupWorkSpace();
            List<Solution> services = _serviceList.GetAll();

           foreach (Solution solution in services)
            {
                WorkingFolder workingFolder = new WorkingFolder(ConvertLocalToTfsPath(solution), GetSolutionFolder(solution));
                workspace.CreateMapping(workingFolder);

                GetRequest request = new GetRequest(new ItemSpec(ConvertLocalToTfsPath(solution), RecursionType.Full), VersionSpec.Latest);
                statusResult.Add(workspace.Get(request, GetOptions.GetAll | GetOptions.Overwrite));
            }
        }
        catch
        {
            throw;
        }

        return statusResult;
    }
私有列表下载最新文件()
{
工作空间=空;
列表状态结果=新列表();
尝试
{
工作空间=设置工作空间();
列表服务=_serviceList.GetAll();
foreach(服务中的解决方案)
{
WorkingFolder WorkingFolder=新工作文件夹(ConvertLocalToTfsPath(解决方案)、GetSolutionFolder(解决方案));
workspace.CreateMapping(workingFolder);
GetRequest-request=新的GetRequest(新的ItemSpec(ConvertLocalToTfsPath(解决方案)、RecursionType.Full、VersionSpec.Latest);
statusResult.Add(workspace.Get(request,GetOptions.GetAll | GetOptions.Overwrite));
}
}
抓住
{
投掷;
}
返回状态结果;
}

这不起作用。它仍然下载了特定解决方案的所有文件。你可以接受它作为答案。