C# 从TFS获取文件的最新版本
我正在尝试从TFS更新本地文件,但无法使其正常工作。我甚至不知道它为什么会失败,因为TFS没有向我抛出异常或任何东西,它只是默默地反抗我,不更新任何东西C# 从TFS获取文件的最新版本,c#,C#,我正在尝试从TFS更新本地文件,但无法使其正常工作。我甚至不知道它为什么会失败,因为TFS没有向我抛出异常或任何东西,它只是默默地反抗我,不更新任何东西 public bool getLatest(string[] items) { try { Workspace myWorkspace = createWorkspace(); myWorkspace.Get(items, VersionSpec.
public bool getLatest(string[] items)
{
try
{
Workspace myWorkspace = createWorkspace();
myWorkspace.Get(items,
VersionSpec.Latest,
RecursionType.Full,
GetOptions.Overwrite);
return true;
}
catch (Exception ex)
{
Tools.MessageLogger.LogError(ex.Message);
return false;
}
}
我必须补充的是,与TFS的所有其他通信都很好,挂起更改、签入或签出都正常。这是相当令人沮丧的 虽然我之前不知道这方面的情况,但我想我应该对我的评论做一点扩展,希望它能有所帮助(因为似乎没有其他人回答) 根据WorkSpace.Get()应该返回一个对象,告诉您有多少警告/失败/冲突-此时您正在丢弃这些信息 如果您希望以与记录其他错误相同的方式记录获取最新信息的失败,您可以尝试以下方法:
public bool getLatest(string[] items)
{
try
{
Workspace myWorkspace = createWorkspace();
var results = myWorkspace.Get(items, VersionSpec.Latest, RecursionType.Full, GetOptions.Overwrite);
var failures = results.GetFailures();
foreach(var fail in failures)
{
Tools.MessageLogger.LogError(fail.GetFormattedMessage());
}
return failures.Count == 0;
}
catch (Exception ex)
{
Tools.MessageLogger.LogError(ex.Message);
return false;
}
}
我确实是在文本编辑器中编写的,而不是在适当的IDE中编写的,因此,如果我输入错误/做了一些愚蠢的事情,我深表歉意。根据,
WorkSpace.Get(),听起来它可能有你需要的信息。非常感谢你的回答。问题出在工作区映射的某个地方,这完全是奇怪的,因为其他函数都可以工作,但是这些信息非常有用!