Как создать PolicyEnvelope для настраиваемой политики регистрации в Visual Studio 2010?
Я создаю пользовательскую политику регистрации для TFS 2010 в Visual Studio 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
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;
}
}
Возможно, вам понадобится добавить ссылку на сборку, содержащую вашу политику, если у вас ее нет в консольном приложении.