TFS 2013 自定义签入策略

TFS 2013 Custom Check in Policy

我正在尝试为特定团队项目 (projectA) 实施自定义策略。但是,当我在 projectA 的上下文中实现它时,它会评估包含的签入中的每个文件。假设我签入了大于 1MB 的 ProjectB。即使它不在当前策略 projectA 的上下文中,它也会对此进行评估。我该如何调整它,以便它只评估当前项目。

public override PolicyFailure[] Evaluate()
{
    foreach (PendingChange pc PendingCheckin.PendingChanges.CheckedPendingChanges)
    {
        FileInfo file = new FileInfo(pc.LocalOrServerItem.ToString());
        if (file.Length > 1048576)
        {
            return new PolicyFailure[] { new PolicyFailure("File size exceeds 1 MB. The size of the file is: " + file.Length.ToString() + " Bytes.", this) };
        }
    }
    return new PolicyFailure[0];
}

我正在使用的注册表项:

[$RootKey$\TeamFoundation\SourceControl\Checkin Policies]
"TeamFoundation.Samples.CheckFileSizePolicy"="$PackageFolder$\CheckFileSizePolicy.dll"

如果自定义签入策略运行良好,您只需使用自定义路径策略。正如所提到的描述:此策略将其他策略的范围限定为特定文件夹或文件类型。

注意:需要 TFS 201X Power Tools。

详细使用步骤,可以参考这个link:TFS 2010 : How to apply check-in policies to only certain branches or folders