0

Visual Studio 2010 で TFS 2010 のカスタム チェックイン ポリシーを作成しました。ポリシー自体はうまく機能しています。今、コードからカスタム ポリシーを適用しようとしています。以下は私のコードです:

try
        {
            var projectCollectionUri = new Uri("https://mydomain.com/tfs");
            var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(projectCollectionUri, new UICredentialsProvider());
            projectCollection.EnsureAuthenticated();

            var vcs = projectCollection.GetService<VersionControlServer>();

            var teamProject = vcs.GetTeamProject("myProject");

            foreach (PolicyType policyType in Workstation.Current.InstalledPolicyTypes)
            {
                if (policyType.Name.ToLower().Contains("MyPolicyType"))
                {
                    //teamProject.SetCheckinPolicies(new PolicyEnvelope[] { new PolicyEnvelope(workItemPolicy, policyType) });
                    //break;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

私はこの行で立ち往生しています:

//teamProject.SetCheckinPolicies(new PolicyEnvelope[] { new PolicyEnvelope(workItemPolicy, policyType) });

カスタム ポリシーのポリシー エンベロープを作成するにはどうすればよいですか? 私が参照しているコードは、以下の場所からのものです: http://bartwullems.blogspot.com/2012/02/team-foundation-server-2010-enable.html

4

1 に答える 1

1

WorkItemPolicy例の をポリシーに置き換えるだけです。

例えば:

var myPolicy = new MyPolicy();

foreach (PolicyType policyType in Workstation.Current.InstalledPolicyTypes)
{
    if (policyType.Name == myPolicy.Type)
    {
        teamProject.SetCheckinPolicies(
            new PolicyEnvelope[]
            {
                new PolicyEnvelope(myPolicy, policyType)
            });
        break;
    }
}

コンソール アプリケーションにポリシーがない場合は、ポリシーを含むアセンブリへの参照を追加する必要がある場合があります。

于 2013-02-19T20:33:57.460 に答える