Prática recomendada para implantar vários tipos de conteúdo com dependências no SharePoint

StackOverflow https://stackoverflow.com//questions/9699451

Pergunta

Estou desenvolvendo uma solução com aprox.15 tipos de conteúdo personalizados.Portanto criei no Visual Studio um projeto SharePoint e adicionei tipos de conteúdo definidos em XML Markup.Como alguns desses tipos de conteúdo usam referências entre si (colunas de pesquisa), adicionei também definições de lista e instâncias de lista.Como as pesquisas podem ser declaradas em XML desde o SharePoint 2010 - está tudo bem.

Agora meu recurso contém todos os tipos de conteúdo, as definições de lista e as instâncias de lista.

Mas o problema é:Às vezes, a implantação é bem-sucedida e às vezes falha.Suponho que isso possa ocorrer porque os elementos dos recursos não possuem ordem de ativação.Agora eu poderia mudar meu projeto e criar um recurso para cada tipo de conteúdo e definir dependências de ativação para definir uma ordem de ativação.Mas isso levaria a pelo menos 20 recursos e, na minha opinião, essa não pode ser a suposta solução para lidar com isso corretamente.

Qual é a maneira correta de implantar tipos de conteúdo com pesquisas para outros tipos de conteúdo na mesma solução?

Há uma restrição:tudo precisa estar em área restrita porque quero implantar no SharePoint Online.

Foi útil?

Solução

Acredito que tive o mesmo problema que você - defini dois tipos de conteúdo;A e B, B confiou em A.e ambos estavam no filme único.No entanto, quando chegou a hora de implantar, recebi um erro:

Ocorreu um erro na etapa de implantação 'Ativar recursos':O tipo de conteúdo pai especificado pelo identificador de tipo de conteúdo 0x010029043F0D68EC4DF1BC85141AFF451661 não existe.

Procurei no arquivo Manifest.xml que o Visual Studio gera dentro do arquivo wsp/cab e percebi que os dois arquivos do tipo de conteúdo Elements.xml foram definidos de maneira errada:

  1. B/Elementos.xml
  2. A/Elementos.xml

Uma solução alternativa para isso é simplesmente forçar a ordem de determinado arquivo Elements.xml no recurso (ou seja,coloque os arquivos do tipo de conteúdo 'raiz' primeiro).

Abra o recurso, vá para Manifesto, abra Opções de edição e insira o arquivo que você precisa especificar primeiro na lista de arquivos Elements.xml.

<ElementManifests>
  <ElementManifest Location="A\Elements.xml" />
</ElementManifests>

Isso emite o seguinte XML no arquivo de manifesto:

<ElementManifests>
  <ElementManifest Location="A\Elements.xml" />
  <ElementManifest Location="B\Elements.xml" />
</ElementManifests>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top