从TFS获取最新版本的文件

Flo*_*bbo 5 c# tfs2010

我试图从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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我必须补充一点,与TFS的所有其他通信都很好,等待更改,签入或结帐都可以.这非常令人沮丧.

Bri*_*dge 3

虽然我对此没有先验知识,但我想我应该稍微扩展一下我的评论,希望它可能有所帮助(因为似乎没有其他人回答)。

根据文档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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我确实是在文本编辑器而不是适当的 IDE 中编写的,所以如果我犯了一个拼写错误/做了一些愚蠢的事情,我深表歉意。