我正在尝试从 TFS 更新本地文件,但我无法让它工作。我什至不知道它为什么会失败,因为 TFS 不会向我抛出异常或任何东西,它只是默默地反抗我并且不更新任何东西。
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 的所有其他通信都很好,pendingchanges、checkin 或 checkout 都在工作。这很令人沮丧。
最佳答案
虽然我对此一无所知,但我想我会稍微扩展一下我的评论,希望它能有所帮助(因为似乎没有其他人回答)。
根据documentation , WorkSpace.Get()
应该返回 GetStatus告诉你有多少警告/失败/冲突的对象 - 目前你只是把这些信息扔掉了。
如果您想以与记录其他错误相同的方式记录获取最新信息的失败,您可以尝试这种事情:
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 中写的,如果我打错了字/做了一些愚蠢的事情,我深表歉意。
关于c# - 从 TFS 获取最新版本的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13970374/