2010-04-08 78 views
0

因此,我想根据功能部署基于“Page”的自定义内容类型。内容类型的部署工作正常 - 自定义内容类型是基于“页面”创建的。自定义内容类型中不存在的字段(继承自“页面”)SharePoint

缺少的是FieldRefs:我在FieldRefs标记中引用的字段没有显示在我部署的内容类型中。

我Elements.xml的样子......

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field Type="Text"
DisplayName="PlantName"
Required="FALSE"
Group="Custom Columns"
ID="{2068B882-8349-4a7f-BA3A-60BE60DEFF9A}"
StaticName="PlantName"
Name="PlantName" />
<ContentType ID="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900A96BBF2C61EC4534A7654CEF00B72A9D"
Name="PlantDocument"
Group="Custom Content Types"
Description="PlantDocument"
Hidden="FALSE"
Version="0">
<FieldRefs>
<FieldRef ID="2068B882-8349-4a7f-BA3A-60BE60DEFF9A"
Name="PlantName" />
</FieldRefs>
</ContentType>
</Elements>

谁能告诉我为什么“PlantName”没有出现在我的内容类型?

感谢您的帮助!

回答

0

我不确定我是否完全理解了您的问题,但它听起来与我以前见过的相似。

我会假设你已经检查了所有明显的事情喜欢你的模式定义和羯羊你停用和部署架构后,激活您的内容类型功能..

一旦你添加内容键入到您的网站,可能的情况是,您可以根据您网站某处的内容类型创建页面/列表项目的实例。在我的情况下,它是两个子网站。这对我来说工作得很好。一旦我更新了我的内容类型(通过添加一个新字段),虽然我可以看到内容类型库中的内容类型改变,但我看不到改变通过我创建基于页面的子站点在我的内容类型上。这是因为,当您基于某种内容类型创建项目的实例时,子站点会在其当前条件下创建该内容类型的缓存副本。

之后,当您更改内容类型时,子网站中的缓存副本不会更新。这不是世界上最明显的事情。

也许您无法看到子网站中出现的字段,但它们确实存在于您的网站列中,并且您的根内容类型已正确更新。

如果这是你的问题,那么你需要执行,我们称之为'内容类型下推'。要做到这一点,您可以下载Gary Lapointe的stsadm命令,您必须通过命令提示符运行(我听说在某些情况下这有风险)。您也可以手动执行此操作,但很抱歉,我不记得具体是如何完成的。您必须根据您的内容类型删除所有实例,然后重试。相当痛苦的小任务。

5

我有一个类似的问题,经过一些实验后,我发现XML中的注释会造成严重破坏。

这工作得很好

<FieldRefs> 
     <FieldRef ID="{4B9D42FA-8081-49AB-9F89-72FAB3C6609C}"/> 
</FieldRefs> 

这不起作用

<FieldRefs> 
     <!-- My field comment --> 
     <FieldRef ID="{4B9D42FA-8081-49AB-9F89-72FAB3C6609C}"/> 
</FieldRefs> 

我将无法评论这个不要,我可生气而停止工作。

+0

所以,这是正确的答案。我有主题启动器相同的问题,问题是我在FieldRef xml节点的评论。我删除了所有评论,它只是工作。我花了大约5个小时来研究和解决这个问题,并最终看到这篇文章和提示:) Joe Capka,感谢一百万! – avishnyakov 2011-05-23 15:44:06

+0

这个答案应该得到100分,每小时浪费一分,试图弄清楚这种奇怪而无证的行为会发生什么。非常感谢你的回答! – Lester 2012-07-24 00:25:33

相关问题