我刚刚创建了几个通过 VS2010 引用它们的网站栏和内容类型。我更新了其中一个字段,然后尝试重新部署,但撤回后,部署失败,因为之前创建的站点列仍然存在。我尝试从 UI 中手动删除它们,并收到带有此消息的警报框:
不能删除内容类型中包含的网站栏。删除此网站栏之前,请删除所有对它的引用。
我在 SharePoint 管理器中四处搜寻,但没有找到任何引用,因此我使用 powershell 枚举所有内容类型和列表,以查找对我的网站栏的引用,但一无所获。
我尝试像这样使用 PowerShell 删除:
$web.Fields.Delete("StartTime")
这导致了这个错误:
Exception calling "Delete" with "1" argument(s): "Site columns which are included in
content types or on lists cannot be deleted. Please remove all instances of this site
column prior to deleting it."
At line:1 char:19
+ $web.Fields.Delete <<<< ("StartTime")
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
最后,对 PowerShell 中的列的简单检查显示以下内容:
Title Id CanBeDeleted ParentList Sealed ListsFieldUsedIn
----- -- ------------ ---------- ------ ----------------
Start Time OBE 6fa0d85b-9af1-408b-835f-d4c66536... True False {}
Time Tracker Tags 92bc866b-0415-45f0-b431-d4df69c4... True False {}
我对 MOSS 2007 和 SP2010 的新手很有经验,但我以前从未见过这种情况。有人有任何提示吗?