Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TFS 2013自定义签入策略_C#_Tfs_Checkin Policy - Fatal编程技术网

C# TFS 2013自定义签入策略

C# TFS 2013自定义签入策略,c#,tfs,checkin-policy,C#,Tfs,Checkin Policy,我正在尝试为特定的团队项目(projectA)实施自定义策略。但是,当我在projectA的上下文中实现此功能时,它会对包含的签入中的每个文件求值。假设我签入了大于1MB的ProjectB。它将对此进行评估,即使它不在当前政策projectA的背景下。我如何调整它,使其仅对当前项目进行评估 public override PolicyFailure[] Evaluate() { foreach (PendingChange pc PendingCheckin.PendingChanges

我正在尝试为特定的团队项目(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以及自定义策略,因此这可能不起作用。谢谢你给我指明了正确的方向。