2013-11-14 59 views
0

我想在特性停用時以編程方式刪除內容類型。我寫的代碼,執行刪除:刪除特徵時刪除內容類型

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. 

此內容類型不會被使用,還是我無法將其刪除。

有什麼辦法來處理這個錯誤?

感謝, 普里亞

+0

此內容類型是您試圖刪除它的相同功能的一部分嗎?也許這個內容類型之前被刪除? –

回答

0

確保所有引用被刪除,並刪除所有回收站爲好。

例如,如果列表引用的內容類型被刪除,它將被移動到回收站,sharePoint仍然會看到一個引用。從所有回收站(最終用戶和網站集)中刪除並重試。