サイトの定義をアップグレードします
-
16-10-2019 - |
質問
SharePointの機能のアップグレードプロセスについて質問があります。
私の機能では、いくつかのリスト定義、Webパートなどとともにカスタムサイトテンプレートを展開しています。これらをアップグレードすると、新しいものをサイトにプロビジョニングするためにカスタム要素マニフェストを展開します。しかし、サイトテンプレートで作成されている新しいサイトはどうでしょうか?それらは常に作成され、更新ですぐに更新されます。それとも、ベースに新しい要素を自分自身にマニフェストすることも確認する必要がありますか?
また、2つの新しいビューでリストを拡張してみましたが、どうすればいいのかわかりません。リストスキーマにビューを含めただけですが、それは新しく作成されたサイトでのみ機能しているようです。既存のサイトは、これら2つの新しいビューで拡張されていません。最終的に、既存のサイトの2つの新しいビューを展開するカスタムコードアップグレードを作成し、新しいサイトのSchema.xmlの定義を含めましたが、おそらく同じことを行うためのより良い方法があると思います。
解決
あなたの最初の質問に答える
はい、elementManifestsおよびupgradeactions-> versionrange-> ApplyManifestsの下に追加のマニフェストを含める必要があります。その理由は、新しいバージョンの機能を展開すると、SharePointが古いバージョンを新しいバージョンに置き換えるためです。また、更新されたバージョンがアクティブ化されると、要素のみでファイルを処理します。アップグレードはまったく処理されません(現在のバージョンをアクティブにして、古いバージョンを作成してアップグレードしないためです)
2番目の質問
SharePointが既存のリストにビューを追加できるスタンドアロンマニフェスト要素をサポートしていないため、変更の性質(既存のリストに新しいビューを追加する)を見ると、コードを使用する選択は正しかったと思います。バージョンのアップグレードは、既存のコンテンツタイプにフィールドを追加するなどをサポートしています(addContentTypeieldを使用)文書化されています ここ しかし、なぜ彼らが次のようなものを持っていないのか分かりません:AddListViewまたはupdateListViewまたはRemoveContentTypeield ..それはここで長い願いのリストになる可能性があります:)
他のヒント
webtemplatesを参照している場合は、Webテンプレートのonet.xmlに新機能を追加してソリューションを更新するだけです。
サイトDefinitins(投稿のタイトルが暗示する)について話している場合は、サイトの定義を更新しないでください。代わりに機能ステープリングを使用して、作成されているサイトに新機能を適用します。