Удалить тип контента во время деактивации функции

Я хочу удалить тип контента программно при деактивации функции. Я написал код для выполнения удаления:

 SPSecurity.RunWithElevatedPrivileges(delegate()
     {
        using (SPWeb webSite =(SPWeb)properties.Feature.Parent)
        {
            webSite.AllowUnsafeUpdates = true;
            // Get the obsolete content type.
            SPContentType obsolete = webSite.ContentTypes["Examples8888 - CT1"];

            // We have a content type.
            if (obsolete != null)
            {
                IList<SPContentTypeUsage> usages = SPContentTypeUsage.GetUsages(obsolete);

                // It is in use.
                if (usages.Count <= 0)
                {
                    obsolete.Delete();
                    // Delete it.
                    Console.WriteLine("Deleting content type {0}...", obsolete.Name);
                    webSite.ContentTypes.Delete(obsolete.Id);
                }
            }


        }
     });

Но это дает мне ошибку:

The content type is part of an application feature.

Этот тип контента нигде не используется, но я не могу его удалить.

Есть ли способ справиться с этой ошибкой?

Спасибо Прия

1 ответ

Убедитесь, что все ссылки также удалены и удалены из всех корзин.

Например, если список ссылается на тип содержимого, он будет перемещен в корзину, а sharePoint все равно увидит ссылку. Удалите из всех корзин (конечный пользователь и семейство сайтов) и повторите попытку.

Другие вопросы по тегам