Adicionando novas webparts a uma solução já implantada
-
09-12-2019 - |
Pergunta
Tenho um projeto de webpart criado no Visual Studio 2010 e ele foi implantado com sucesso em meu ambiente de produção.Recentemente, tive que fazer algumas alterações na webpart e também adicionar uma nova webpart de suporte ao projeto (com base na natureza das webparts e no relacionamento entre elas, pensei que faria sentido manter ambas no mesmo projeto e, portanto, parte do mesmo recurso).
De qualquer forma, após fazer as alterações, implantei no servidor usando o comando 'update-spsolution'.No entanto, embora as alterações que fiz na webpart já existente tenham sido imediatamente visíveis em qualquer página onde a webpart foi implantada, não consigo implantar a webpart recém-criada que fazia parte do recurso; na verdade, nem consegui encontrá-la na galeria de web parts.
Só depois, quando removi a nova webpart do projeto existente e criei um novo projeto, um novo arquivo wsp e implantei a nova solução e, em seguida, ativei o novo recurso, é que consegui implantar a nova webpart.
Estou me perguntando: há algo que estou fazendo de errado ao executar o comando 'update-spsolution' que faz com que minha webpart recém-adicionada não esteja disponível?
Solução
Você precisará reativar o recurso que você atualizou.Após a reativação, a web parte deve aparecer na galeria.
Outras dicas
Se você quisesse fazer isso da maneira "certa", deveria ter usado a atualização de recursos.
Infelizmente, não é simples, mas oferece muito controle sobre o que acontece quando você implanta uma nova versão de um recurso.
No seu caso, isso envolveria:
- Adicione os arquivos elements.xml para as novas web parts dentro
<ApplyElementManifests>
dentro<UpgradeActions>
no feature.xml - atualizar solução usando
update-spsolution
como você fez - atualizar os recursos (pode ser feito usando Kit de atualização de recursos do SharePoint 2010)
Para obter mais informações sobre a atualização de recursos, consulte a série de Chris O'Briens começando com Atualização de recursos (parte 1) – fundamentos
Mesmo que possa parecer um exagero para um projeto simples, ainda acho que é a coisa certa a fazer pelos seguintes motivos:
- É uma boa prática entrar e você deve sempre pensar em atualizar seus recursos
- Se o seu recurso estiver fazendo algo quando ativado/desativado, como adicionar dados ou limpar, ativar/desativar pode não ser uma opção
- Pode ser muito mais fácil encontrar todos os locais para atualizar um recurso (incorporado) do que fazer um loop e procurar onde o recurso está ativado e, em seguida, desativar/ativar
Descobri que atualizar o WSP às vezes pode ser um pouco complicado.Às vezes fazendo um completo Uninstall-SPSolution
/Remove-SPSolution
ajudará se você estiver enfrentando um comportamento estranho.
Na minha experiência, a implantação do Visual Studio geralmente ocorre sem problemas.Por causa disso, tentarei combinar o processo de implantação o mais próximo possível se estiver tendo um problema de implantação.Abaixo está uma descrição da configuração de implantação "Padrão" para um projeto do SharePoint no visual studio:
...Empacota o arquivo WSP, recicla o pool de aplicativos, retrai a versão anterior da solução, adiciona a solução, ativa todos os recursos e executa a linha de comando pós-implantação.
Você precisará reativar as web partes da Web Part Gallery Vá para Ações do site> Configurações do site Sob galerias> Web Parts Nos documentos da Galeria de Web Parts> Novo documento Você vai bem as novas Web Parts Selecione as novas Web Parts e clique em Popular Gallery Nas novas propriedades da edição da Web Part, altere o grupo para personalizado e clique em Salvar Depois disso, você vai bem as novas web partes nas web partes personalizadas
Após desativar e, em seguida, ativar e finalmente reciclar o pool de aplicativos resolve meu problema. Agora a web parte é mostrada na galeria.