C# 仅从工作区下载所需的解决方案
我有一段代码,用于设置工作空间并以编程方式从tfs工作空间下载文件。我想扩展以指定在该工作空间中可以下载哪些解决方案。你知道我该怎么做吗C# 仅从工作区下载所需的解决方案,c#,tfs,version-control,C#,Tfs,Version Control,我有一段代码,用于设置工作空间并以编程方式从tfs工作空间下载文件。我想扩展以指定在该工作空间中可以下载哪些解决方案。你知道我该怎么做吗 private GetStatus DownloadLatestFiles() { Workspace workspace = null; try { workspace = SetupWorkSpace(); workspace.Map(_reposi
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));
}
}
抓住
{
投掷;
}
返回状态结果;
}
这不起作用。它仍然下载了特定解决方案的所有文件。你可以接受它作为答案。