Best Practice per la distribuzione di più tipi di contenuti con dipendenze in SharePoint
-
13-12-2019 - |
Domanda
Sto sviluppando una soluzione con ca. 15 tipi di contenuti personalizzati. Pertanto ho creato in Visual Studio un progetto SharePoint e ha aggiunto tipi di contenuti definiti in XML Markup. Poiché alcuni di questi tipi di contenuto utilizzano i riferimenti tra loro (Colonne di ricerca), ho aggiunto anche le definizioni dell'elenco e le istanze di elenco. Poiché la ricerca può essere dichiarata in XML da SharePoint 2010 - tutto va bene.
Ora la mia funzione contiene tutti i tipi di contenuto, le definizioni dell'elenco e le istanze dell'elenco.
Ma il problema è: a volte la distribuzione ha esito positivo e talvolta fallisce. Suppongo che ciò possa verificarsi perché gli elementi all'interno delle caratteristiche non hanno alcun ordine di attivazione. Ora potrei cambiare il mio progetto e creare una funzionalità per ogni tipo di contenuto e definire le dipendenze di abilitazione per definire un ordine di attivazione. Ma questo porterebbe ad almeno 20 caratteristiche e secondo me questo non può essere la presunta soluzione per gestirlo correttamente.
Qual è il modo corretto per distribuire i tipi di contenuto con la ricerca di altri tipi di contenuto all'interno della stessa soluzione?
C'è una restrizione: tutto deve essere sandboxato perché voglio implementare in SharePoint online.
Soluzione
Credo di avere lo stesso problema di te - ho definito due tipi di contenuto; A e B, B si è basato su A. ed entrambi erano nella singola caratteristica. Tuttavia, quando è arrivato il momento di implementare ho ricevuto un errore:
.Si è verificato un errore nel passaggio di distribuzione 'Attivare le funzioni': Il tipo di contenuto genitore specificato dall'identificatore del tipo di contenuto 0x010029043F0D68EC4DF1BC85141DF1BC85141AFF45161 non esiste.
Ho guardato nel file Manifesto.xml che Visual Studio genera all'interno del file WSP / CAB e ha notato i due file di contenuto Elementi.XML I file sono stati definiti nel modo sbagliato:
..
- b / elements.xml
- a / elements.xml
Un lavoro in questo modo è semplicemente costringere l'ordine di determinati elementi.xml file nella funzione (I.e. Metti prima i file del tipo di contenuto "root".
Aprire la funzione, vai a manifestare, aprire le opzioni di modifica e immettere il file che devi specificare prima nell'elenco di elementi.xml file.
<ElementManifests>
<ElementManifest Location="A\Elements.xml" />
</ElementManifests>
.
Questo emette il seguente XML nel file Manifest:
<ElementManifests>
<ElementManifest Location="A\Elements.xml" />
<ElementManifest Location="B\Elements.xml" />
</ElementManifests>
.