Подтвердить что ты не робот

Не удалось удалить ContentType SharePoint 2010 "Используемый тип использования".

Я пробовал все рекомендации в Интернете, но безрезультатно.

Я написал консольное приложение в соответствии с этими инструкциями: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcontenttypecollection.delete.aspx

"Usages.Count" равно 0. Но когда он пытается удалить Content Type, я получаю Exception:

"Используется тип содержимого."

Это совершенно новая (разработка) установка. Я создал тестовый сайт в SP Designer, создал Content Type, а затем список. Затем я удалил список, удалил его из корзины и попытался удалить тип содержимого... Ugh.

4b9b3361

Ответ 1

Я был разочарован этой проблемой, пока не нашел ваш комментарий. Отличные советы.

  • Удалить из корзины корзины.
  • Удалить из коллекции сайтов > Настройки сайтa > Администрирование коллекции сайтов > Корзина.
  • Удалить из элементов корзины конечного пользователя.
  • Удалить из "Удалено из корзины конечных пользователей".

Это много переработки! После завершения я смог удалить тип содержимого.

Ответ 2

this powershell script сформировать этот post также работал у меня

$siteURL = "The Site url"
$contentType = "Content type Name"

$web = Get-SPWeb $siteURL
$ct = $web.ContentTypes[$contentType]

if ($ct) {
$ctusage = [Microsoft.SharePoint.SPContentTypeUsage]::GetUsages($ct)
      foreach ($ctuse in $ctusage) {
        $list = $web.GetList($ctuse.Url)
        $contentTypeCollection = $list.ContentTypes;
        $contentTypeCollection.Delete($contentTypeCollection[$ContentType].Id);
        Write-host "Deleted $contentType content type from $ctuse.Url"
        }
$ct.Delete()
Write-host "Deleted $contentType from site."

} else { Write-host "Nothing to delete." }

$web.Dispose()

Ответ 3

В дополнение к корзинам для переработки также есть страница под названием "Управление файлами, которые не проверяются в версии" в разделе "Разрешения и управление" в библиотеках документов, - файлы там также могут предотвратить удаление типа содержимого.

Ответ 4

  

    using System;
    using System.Collections.Generic;
    using Microsoft.SharePoint;

    namespace Test
    {
       class ConsoleApp
       {
          static void Main(string[] args)
          {
             using (SPSite siteCollection = new SPSite("http://localhost"))
             {
                using (SPWeb webSite = siteCollection.OpenWeb())
                {
                   // Get the obsolete content type.
                   SPContentType obsolete = webSite.ContentTypes["Test"];

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

                      // It is in use.
                      if (usages.Count > 0) 
                      {
                         Console.WriteLine("The content type is in use in the following locations:");
                         foreach (SPContentTypeUsage usage in usages)
                            Console.WriteLine(usage.Url);
                      }

                      // The content type is not in use.
                      else 
                      {

                         // Delete it.
                         Console.WriteLine("Deleting content type {0}...", obsolete.Name);
                         webSite.ContentTypes.Delete(obsolete.Id);
                      }
                   }

                   // No content type found.
                   else 
                   {
                      Console.WriteLine("The content type does not exist in this site collection.");
                   }
                }
             }
             Console.Write("\nPress ENTER to continue...");
             Console.ReadLine();
          }
       }
    }

 

Создайте консольное приложение с указанным выше кодом и запустите этот проект. Этот код сообщит вам библиотеки, в которых используются типы контента. Затем просто зайдите в библиотеки и удалите прикрепленные типы содержимого. Затем, наконец, удалите тип контента из "Действия сайта" → "Настройки сайта" - "Типы содержимого сайта", или вы также можете использовать приведенный выше код, чтобы удалить тип содержимого.

Это сработало для меня, надеюсь, это может сработать и для вас!!! Спасибо.