无法以编程方式从Sharepoint列表中删除内容类型

无法以编程方式从Sharepoint列表中删除内容类型,sharepoint,sharepoint-2007,content-type,Sharepoint,Sharepoint 2007,Content Type,我当前无法通过编程方式从Sharepoint列表中删除内容类型。我想做的是,我想安装一个新版本的自定义内容类型(它有额外的字段),所以我选择删除原来的一个,并重新添加最新的一个。代码如下: bool requireUpdate = false SPContentType tempCtId = existingWeb.AvailableContentTypes["Item"]; List<SPListITem> itemsWithTEmpCt = new List<SPListI

我当前无法通过编程方式从Sharepoint列表中删除内容类型。我想做的是,我想安装一个新版本的自定义内容类型(它有额外的字段),所以我选择删除原来的一个,并重新添加最新的一个。代码如下:

bool requireUpdate = false
SPContentType tempCtId = existingWeb.AvailableContentTypes["Item"];
List<SPListITem> itemsWithTEmpCt = new List<SPListItem>();

foreach (SPListItem item in listToUpdate.Items)
{
    if (item.ContentType.Name.Equals(ctToUpdate))
    {
        item["Content Type"] = "Item";
        itemsWithTempCt.Add(item);
        requireUpdate = true;
    }
}

if (requireUpdate)
{
    foreach (SPListItem itemWithTempCt in itemsWithTempCt)
    {
        itemWithTEmpCt.File.CheckOut();
        itemWithTempCt.Update();
        itemWithTEmpCt.File.CheckIn("converted ct");
    }
}

// reset vars
requireUpdate = false;
itemsWithTempCt = new List<SPListItem>();

// changing the folder's ct, if any
foreach (SPListItem folder in listToUpdate.Folders)
{
    if (folder.ContentType.Name.Equals(ctToUpdate))
    {
        folder["Content Type"] = "Item";
        itemsWithTempCt.Add(folder);
        requireUpdate = true;
    }
}

if (requireUpdate)
{
    foreach (SPListItem itemWithTempCt in itemsWithTempCt)
    {
        itemWithTempCt.Update();
    }
}

listToUpdate.ContentTypes[ctToUpdate].Delete(); //<--- exception here
SPContentType contentTypeToSet = web.AvailableContentTypes[ctToUpdate];
listToUpdate.ContentTypes.Delete(tempCtId.Id);
listToUpdate.ContentTypes.Add(contentTypeToSet);
//....
在谷歌搜索之后,我尝试了许多不同的方案,但到目前为止,没有一个有效:

-版本==1.0的文件夹未更新其内容类型。。。因此,内容类型仍在使用中(足够合理)

-所有文档和文件夹的内容类型都设置为“项”,但仍在使用该内容类型。回收站中没有任何内容,没有次要版本的文件(文档库不允许),没有权限问题

-这些项目位于工作流中,尽管它们已完成

该列表位于站点级别,例如web.ParentWeb将为您提供该列表。我完全不知道还有什么可以使用内容类型。以前有没有人有过这样的想法或遇到过这样的问题


谢谢。

是的,我们以前看到过,这是由于其他人创建了草稿项,但从未签入,因此您无法看到它们。“文档库设置”下有一个工具,允许您拥有没有签入版本的签出文件的所有权。

我认为您无法删除包含基于该文件的项目的内容类型。

我查看了您建议的签出文件位置,但在那里找不到任何文件。
Content Type is still in use.