A implantação do SharePoint 2010 não atualizará as páginas mestras porque SPFile.CustomizedPageStatus é 'None'
-
10-12-2019 - |
Pergunta
Temos o seguinte cenário e esperamos que alguém possa ajudar:
- Banco de dados de conteúdo do site de publicação original de 2007 atualizado para 2010
- Os modelos de página em uso nunca foram fantasmas porque foram adicionados manualmente e não fazem parte da definição do site, portanto, sua propriedade SPFile.CustomizedPageStatus está definida como 'Nenhum'
- Nossos modelos atualizados estão em um pacote de implantação do VS2010, que é implantado por meio de um recurso (a implantação falha devido ao ponto anterior)
- Até agora não conseguimos alterar CustomizedPageStatus via PowerShell ou SPFile.RevertContentStream() porque CustomizedPageStatus está definido como 'None'.Este método lança uma exceção por design se a propriedade for 'None'
Idealmente, gostaríamos de atualizar a propriedade para ‘Uncustomized’ (por exemplo), para que a implantação atualize todos os arquivos.
As entradas no arquivo Elements.xml estão no seguinte formato:
<File Url="CustomMasterPage.master" Type="GhostableInLibrary" />
Grato por qualquer ajuda.
Solução
Agora encontramos uma solução temporária usando a seguinte ferramenta:
http://spghostfilesmanager.codeplex.com/
Renomeamos nossos modelos de página no recurso, implantamos-os normalmente e usamos o Ghost Files Manager para “conectar” os modelos aos novos.
Para ser honesto, é um pouco complicado, mas nos permitiu continuar.
Se alguém tiver alguma sugestão melhor sobre como conseguir isso, poste!
Outras dicas
Você também pode usar o SharePoint Designer, se instalado.
Vá para a página relevante na Galeria de Páginas Master e se tiver um azul "!" Ícone ao lado, clique em "Redefinir para a definição do site".Isso recarregará a página relevante do hive.
Mas todas as personalizações feitas na versão atual da página serão perdidas!
acredito que a solução é (Sharepintdesigner) e depois implante a solução novamente (VisualStudio)
Funcionou para mim!Apenas certifique-se no visual studio que o item "Resolução de Conflitos de Implantação" está definido como "Nenhum"