2010-04-08 79 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

相關問題