无法创建SharePoint网站列

时间:2014-07-23 18:35:55

标签: xml powershell sharepoint

我一直在尝试使用PowerShell和网站功能来更新现有或以前存在的网站列(很多)。使用SharePoint Designer或C#代码添加网站列或无ID属性的$web.Fields.AddFieldAsXml都可以正常工作。但是,因为必须为我的项目保留字段GUID,所以一旦我使用以前部署的GUID,SharePoint就会报告错误。

这是我使用PowerShell获取错误的方法:( ID是一个唯一值)

<Field ID="{00000000-0000-0000-0000-000000000000}" Name="CustomField" DisplayName="Custom Field" Type="Boolean" Required="FALSE" Overwrite="TRUE" OverwriteInChildScopes="TRUE" Group="Custom Columns"> </Field>

$web.Fields.AddFieldAsXml($xml)

Exception calling "AddFieldAsXml" with "1" argument(s): "" At line:1 char:1 + $web.Fields.AddFieldAsXml($xml) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SPException

但是,如果我删除ID属性或使用新ID,它将按预期创建列。

当我激活功能时会发生同样的情况。日志显示:

System.Runtime.InteropServices.COMException: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)), StackTrace: at Microsoft.SharePoint.SPFieldCollection.FetchFieldsFromWeb()

Unable to locate the xml-definition for FieldName with FieldId '00000000-0000-0000-0000-000000000000', exception: Microsoft.SharePoint.SPException: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) ---> System.Runtime.InteropServices.COMException: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))

我怀疑它是网站集中的损坏字段所以我删除了几个列,但现在我无法添加它们并更新内容类型 - 请帮助!

1 个答案:

答案 0 :(得分:0)

我有一个可能相关的问题,我无法添加我以前删除过的列。

事实证明,这些已删除的列首先存储在站点回收站中。

清空该垃圾箱后,我仍然无法重新添加已删除的列。

这最终是由于已删除的列仍然存在于网站集回收站中。

请参阅:SP recycle bins

您的问题可能相关吗?