Εάν παίρνετε “Τύπο περιεχομένων τοποθεσίας στη χρήση” σφάλμα κατά τη διαγραφή του τύπου περιεχομένου.
Αλλάξτε τον προεπιλεγμένο τύπο περιεχομένου για τον κατάλογο / βιβλιοθήκη, που χρησιμοποιεί αυτόν τον τύπο περιεχομένου.
Στη συνέχεια, δοκιμάστε να διαγράψετε τον τύπο περιεχομένου.
How to find in which libraries this content type is used?
Refer to the discussion in my forum :
http://www.mstechblogs.com/Forums/viewtopic.php?f=8&p=12&sid=cee7f065bed1fc88d9759c66b373d4dd#p12
You can use Object Model to find :
using System;
using System.Collections.Generic;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(χορδή[] args)
{
χρησιμοποιώντας (SPSite siteCollection = new SPSite(“http://localhost”))
{
χρησιμοποιώντας (SPWeb webSite = siteCollection.OpenWeb())
{
// Get the obsolete content type.
SPContentType obsolete = webSite.ContentTypes[“Test”];
αν (obsolete != 0) // We have a content type. usages = SPContentTypeUsage.GetUsages(obsolete);
{
IList
αν (usages.Count > 0) // It is in use.
{
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.
{
// Delete it.
Console.WriteLine(“Deleting content type {0}…”, obsolete.Name);
webSite.ContentTypes.Delete(obsolete.Id);
}
}
αλλού // No content type found.
{
Console.WriteLine(“The content type does not exist in this site collection.”);
}
}
}
Console.Write(“\nPress ENTER to continue…”);
Console.ReadLine();
}
}
}
Other Option would be using SQL query (beware its bit risky)
SELECT *
FROM AllUserData
WHERE (tp_DirName LIKE ‘%’)
AND ((tp_ContentType = ‘Document’) and tp_ListId=’C8723B19-0DAB-4F19-B195-3399D5375752′)
You will find items referenced by content type. Delete this referenced items using query below.
DELETE
FROM AllUserData
WHERE (tp_DirName LIKE ‘%’)
AND ((tp_ContentType = ‘Document’) and tp_ListId=’C8723B19-0DAB-4F19-B195-3399D5375752′)