c# - 从 TFS 获取最新版本的文件

标签 c#

我正在尝试从 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/

相关文章:

c# - 带有图标的简单 WPF 数据绑定(bind)问题

c# - 如何在没有任何编码的情况下从串口读取二进制数据?

c# - 无法将参数 1 从 'char [25]' 转换为 'SAFEARRAY *'

c# - 如何使用asp.net中的页面URL以编程方式读取html页面的内容?

c# - 使用 Xamarin 构建适用于 Windows CE 5.2 的应用程序?

c# - 如何在 Sqlite.Net 的 where 子句中使用 DateTime

c# - c#中的最大容量集合

c# - 在 Lambda 表达式中访问修改后的闭包

c# - 通过参数的父类(super class)实现接口(interface)

c# - 在不知道进程启动顺序的情况下在另一个进程上触发事件