C# 使用TFS Api查询我的工作区是否有最新的文件

C# 使用TFS Api查询我的工作区是否有最新的文件,c#,.net,tfs-sdk,C#,.net,Tfs Sdk,我想通过编程来确定工作区是否有最新的文件。我不想做一个Workspace.Get(),因为这相当于“获取最新信息”。我只是想知道我的工作区是否需要“获取最新信息” 我在构建期间执行此检查。我计划使用如下方法: public static bool HasLatestFiles(Workspace ws) { bool hasChanges = false; /* need correct code to query if ws has latest files */

我想通过编程来确定工作区是否有最新的文件。我不想做一个
Workspace.Get()
,因为这相当于“获取最新信息”。我只是想知道我的工作区是否需要“获取最新信息”

我在构建期间执行此检查。我计划使用如下方法:

public static bool HasLatestFiles(Workspace ws)
{
    bool hasChanges = false;

    /* need correct code to query if ws has latest files */

    return hasChanges;
}
正确的代码是什么?

使用
Workspace.Get(最新版本spec.Instance,GetOptions.Preview)
然后检查
GetStatus.NoActionNeeded
操作生成的
Get

因此:


PS:我发现
hasChanges=false
非常令人困惑。因为您需要返回相反的结果来判断用户是否拥有最新的文件。PS:如果您计划无论如何都要获取最新的文件,那么如果工作区“过时”,那么您最好只调用获取最新的文件。这更快了。很抱歉“hasChanges=false”,这是我尝试过的几种不同方法的遗留问题。我不打算做一个获取最新的,但我想通知建设者,他没有最新的文件。工作完美!谢谢如何获得最新版本?我注意到在VS.NET的源代码管理中使用命令比调用API
workspace.Get(new-GetRequest(targetBranch,RecursionType.Full,VersionSpec.Latest),GetOptions.GetAll)要快得多我认为您不需要getall,这会强制覆盖所有文件,而不仅仅是更改的文件。
public static bool HasLatestFiles(Workspace ws)
{
    GetStatus result = ws.Get(LatestVersionSpec.Instance, GetOptions.Preview);

    bool hasLatestFiles = result.NoActionNeeded;

    return hasLatestFiles;
}