Implantar masterpage para subsite usando o módulo de
-
10-12-2019 - |
Pergunta
Eu criei uma pesquisa do centro e deseja aplicar um costume masterpage para ele.Quero implantar a masterpage usando um módulo e o recurso a minha solução.Eu criei um módulo e o Elements.xml parece
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="SearchcenterModule" Url="Suche/_catalogs/masterpage">
<File Path="SearchcenterModule\minimal.master" Url="minimal.master" />
</Module>
</Elements>
Para ativar a minha característica no site do conjunto de recursos, recebo um erro
(nulo) "Suche" não encontrado.
...
onde "Suche" é o Nome do meu subsite, i.é.: http://mysharepoint/Suche
Claro, eu posso adicionar o arquivo manualmente, mas deve haver uma maneira de implantá-lo usando o recurso de ativação.
Obrigado por sua ajuda.
Solução
Eu não sei a solução, mas, você já tentou definir a funcionalidade âmbito da web, use o padrão de definição de módulo e a ativação deste módulo, no Suche subsite?
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="MasterPageModule" Url="_catalogs/masterpage">
<File Url="MasterPage.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="False" />
</Module>
</Elements>
Se não funcionar, você já tentou usar ~Site token?
<Module Name="SearchcenterModule" Url="~Site/_catalogs/masterpage">
Outras dicas
Masterpages e pagelayout só podem ser implantados SiteCollections, não sites/subsites.
Assim, o recurso precisa ser Site de escopo.Você pode sempre no seu FeatureReceiver definir o masterpage em um determinado SPWeb
.
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="SearchcenterModule" Url="_catalogs/masterpage">
<File Url="minimal.master" IgnoreIfAlreadyExists="TRUE" Type="GhostableInLibrary" />
</Module>
</Elements>
IgnoreIfAlreadyExists
certifica-se você substituí-lo quando você implantar para novas mudanças aparecerem. Type="GhostableInLibrary"
torna-se o novo masterpage/pagelayout é visível na Masterpage & Pagelayouts galeria.