以下のリンクでこの記事を見ました。質問があれば教えていただけないでしょうか。
http://msdn.microsoft.com/en-us/library/ee330223(v=office.12).aspx
私たちが開発したわけではありませんが、維持する必要がある現在のプロジェクトでは、いくつかの問題に直面しています。他の会社が初めてコンテンツ タイプを開発したように見えますが、xml 定義を使用してリスト テンプレートを作成することで、問題なく完了しました。また、インスタンスのリストも適切に整理された方法で行われました。
ただし、ある時点で、コンテンツ タイプとリストが既に運用環境で実行された後、いくつかの変更を行う必要がありました (既存のコンテンツ タイプへの新しいフィールドの追加、表示名またはグループ名の翻訳の変更、required、showinnewform、showineditform などのプロパティの変更)。等)
インターネット上で、多くの人がゴースト化されていないコンテンツ タイプに問題を抱えていることを発見しました。これは、誰かが UI を使用して子コンテンツ タイプまたはリストを変更したときに、コンテンツ タイプが XML 定義から切り離されていることを意味します。
展開後のコンテンツ タイプを管理するためのベスト プラクティスのリストを収集しようとしています。
1.既存のコンテンツ タイプに新しいフィールドを追加する方法は?
このために、UpgradeActions と AddFieldRef を使用しました。
2.既存のフィールドをコンテンツ タイプから削除するには?
このために、まだ必要ではありませんが、UpgradeActions 内で使用できる RemoveFieldRef 要素も存在することがわかりました。
3.コンテンツ タイプのフィールドを並べ替えるには?
これは、カスタム アップグレード アクションのコードで行います。
4.既存のフィールドの翻訳を変更するには?
これは、カスタム アップグレード アクションのコードで行います。
5.ShowInDisplayForm、ShowInNewForm、Hidden、Requiredなどのプロパティを変更する方法
これは、カスタム アップグレード アクションのコードで行います。
上記のリスト、特にポイント 3、4、および 5 はベスト プラクティスと言えるのでしょうか。なんで?数週間前、コードを介して変更を行い、変更をプッシュダウンしても機能しない、変更がプッシュされない (リストに変更が表示されない) など、多くの問題がありました。何時間も読んだ後、リスト コンテンツ タイプ LINK がその親コンテンツ タイプの定義から壊れているために、これが可能である可能性があることがわかりました。
このリンクを再確立する方法は SQL を使用して実行できることがわかりましたが、もちろんサポートされていません。
http://www.olavaukan.com/2010/10/content-types-can-be-unghosted-too/
多分誰かが私を正しい方向に導くことができますか?