У меня есть обычная политика проверки, написанная на C#, и я использовал проект VSIX с настраиваемым действием, включенным при установке. Установка отлично работает. Если у меня есть специальная политика проверки, применяемая к командному проекту в TFS 2010, и я удалил свою политику с одного и того же установщика, он очистит реестр и файлы, но исходный элемент управления все еще имеет политику и выдает ошибку. Ошибка загрузка политики. Я хочу, чтобы мой установщик удалял политику из исходного элемента управления при удалении политики. Как я могу это достичь?Как удалить пользовательскую политику проверки при удалении?
Я попытался написать следующий код в OnAfterUninstall случае, но он не делает то, что мне нужно:
protected override void OnAfterUninstall(IDictionary savedState)
{
base.OnAfterUninstall(savedState);
RemovePolicy();
}
private void RemovePolicy()
{
try
{
TfsTeamProjectCollection projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(projectCollectionUri, new UICredentialsProvider());
projectCollection.EnsureAuthenticated();
VersionControlServer vcs = projectCollection.GetService<VersionControlServer>();
List<TeamProject> lstTeamProject = vcs.GetAllTeamProjects(true).ToList<TeamProject>();
foreach (TeamProject tp in lstTeamProject)
{
List<PolicyEnvelope> tc = tp.GetCheckinPolicies().ToList<PolicyEnvelope>();
var myPolicy = new MyCustomCheckinPolicy();
TeamProject teamProject = vcs.GetTeamProject(tp.Name);
foreach (PolicyType policyType in Workstation.Current.InstalledPolicyTypes)
{
if (policyType.Name == myPolicy.Type)
{
tc.Remove(new PolicyEnvelope(myPolicy, policyType));
teamProject.SetCheckinPolicies(tc.ToArray());
break;
}
}
}
}
catch (Exception ex)
{
throw new InstallException("My Error Message");
}
}
Итак, что * это * он делает? Происходит ли это ошибка, терпит неудачу? И вы действительно уверены, что хотите это сделать? Любой член команды, удаляющий политику, удалит ее с сервера! – jessehouwing
'Любой член команды, удаляющий политику, удалит ее с сервера!' oops, я этого не знал. В таком случае я не хочу этого делать. Спасибо, что предупредили меня. – PushCode