我一直在尝试使用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))
我怀疑这是网站集中的损坏字段,所以我删除了一些栏目,但现在我无法将它们添加回来并更新内容类型-请帮助!
发布于 2014-07-26 05:54:49
我有一个可能相关的问题,我无法添加我认为我之前已经删除的列。
原来,这些被删除的列首先存储在站点回收站中。
清空该bin后,我仍然无法重新添加已删除的列。
这最终是由于删除的列仍然存在于网站集回收站中。
请参阅:SP recycle bins
你的问题可能是相关的吗?
https://stackoverflow.com/questions/24918289
复制相似问题