Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os componentes da solução dependem frequentemente de outros componentes da solução. Não é possível eliminar qualquer componente da solução que tiver dependências de outro componente da solução. As dependências são registos criados automaticamente pela estrutura de soluções para evitar que os componentes necessários sejam eliminados, enquanto um ou mais componentes dependentes ainda incluem referências a eles.
Exemplos de uma dependência é, dado que um campo é necessário para um formulário funcionar, quando você tenta executar uma ação que resulta na exclusão desse campo, o formulário vai parar de funcionar.
Outro exemplo é quando você tenta excluir o mapa do site de um aplicativo controlado por modelo. O sistema indica que há uma dependência do aplicativo. O aplicativo é o componente dependente e o mapa do site é o componente necessário. O sistema impede que você exclua o mapa do site até remover a dependência.
Nota
Excluir significa que o componente é completamente removido Microsoft Dataverse.
Neste artigo, vamos discutir como lidar com estas dependências e as estratégias que pode utilizar para remover dependências que já não precisa.
Dependências de componentes não geridos versus geridos
Primeiro, é importante entender que as dependências só impedem operações que excluem um componente necessário. As ações que podem eliminar um componente são diferentes, consoante é não gerido ou gerido.
É bom estar familiarizado com o conceito de camada de solução e componente ao descrever dependências. Se você não estiver familiarizado, recomendamos que leia este artigo antes de continuar: Camadas de solução
Componentes não geridos
Estes componentes são representados por uma única camada na solução ativa. Qualquer operação Eliminar neste componente resulta na remoção completa do componente.
Componentes geridos
A eliminação de componentes geridos depende de múltiplos fatores: o número de camadas de solução, a posição relativa da camada que está a ser desinstalada e os fabricantes de componentes. Por exemplo, quando um componente é eliminado, considere os seguintes cenários e qual será o comportamento esperado quando desinstalar as várias camadas.
Cenários de exemplo
Os seguintes cenários de exemplo ilustram o que acontece às camadas de solução quando as soluções são desinstaladas.
Cenário 1: Desinstalar uma única camada de solução
Desinstalar a Solução 1 causa uma eliminação de componentes porque é a única camada para o componente.
Cenário 2: Desinstalar camadas de solução de diferentes fabricantes
- Desinstalar a Solução 2 não causa a eliminação de um componente. Apenas essa camada é removida.
- Desinstalar a Solução 1 causa uma eliminação de componentes porque a ação ocorre na camada base. De facto, a Solução 1 não pode ser desinstalada neste cenário, porque uma solução de um fabricante diferente expande o componente.
Cenário 3: Desinstalar várias camadas de solução de diferentes fabricantes
- Desinstalar a Solução 3 não causa a eliminação de um componente. Apenas essa camada é removida.
- Desinstalar a Solução 2 não causa a eliminação de um componente. Apenas essa camada é removida.
- A desinstalação da Solução 1 não causa a exclusão de um componente, porque neste caso há outra solução do mesmo editor (Publisher A = Publisher C). A plataforma remove a camada da Solução 1 e substitui-a pela camada da Solução 3.
Cenário 4: Desinstalar camadas de solução numa personalização não gerida
- A desinstalação da camada ativa (não gerenciada) não causa a exclusão de componentes. Apenas essa camada é removida. Observe que não é possível desinstalar a solução ativa, mas é possível remover componentes usando o recurso Remover personalização ativa .
- Desinstalar a Solução 1 causa a eliminação de um componente. A ação ocorre na camada base. Ao contrário do cenário 2, pode desinstalar a Solução 1. A solução ativa não é considerada uma extensão e ambas as camadas são removidas.
Mostrar página de dependências
O comando Mostrar dependências lista as dependências para a solução ou componente da solução selecionado. Pode ser invocado ao:
- Selecionar Mostrar dependências na página da solução.
- Selecionar Avançadas>Mostrar dependências numa solução quando um componente de solução é selecionado.
- Tentar desinstalar uma solução, o que faz com que a plataforma detete que existem dependências.
Na página Dependências , você pode abrir, remover ou excluir o componente. Mais informações: Ver dependências de um componente
Diagnosticar dependências
Considere este cenário. O ambiente aqui tem duas soluções: Solução - Fluxo de trabalho e Solução - Entidade personalizada.
Um criador do ambiente decide que eles não precisam mais de Solução - Entidade Personalizada. O criador tentou apagá-lo, e foi apresentado com a seguinte página:
A desinstalação da solução está a tentar excluir uma tabela chamada Entidade Personalizada e três campos — Entidade Personalizada, Nome e Campo de Número — e todos os quatro componentes têm dependências.
Nota
Desinstalar a solução pode potencialmente eliminar mais componentes, mas como não têm dependências, não aparecerão na lista.
O próximo passo consiste em verificar a ligação Camadas de Solução (coluna mais à direita) para cada dependência. Isso ajuda você a decidir o que fazer para remover a dependência.
A figura a seguir mostra os detalhes de dependência entre a tabela (Entidade Personalizada) e o processo (Fluxo de Trabalho de Teste).
Com base nos dados exibidos, você pode observar que o componente dependente pertence a uma solução chamada SolutionWorkflow. Para remover esta dependência, pode:
- Atualize a definição do fluxo de trabalho em SolutionWorkflow removendo quaisquer referências à tabela ou seus subcomponentes. Em seguida, pode Atualizar ou Atualizar a versão da solução.
- Desinstalar a solução SolutionWorkflow.
- Remover o fluxo de trabalho de uma nova versão da solução SolutionWorkflow e, e, seguida, efetuar uma Atualização de versão.
Como qualquer componente dependente individual pode impedir a remoção da solução, recomendamos que verifique todas as dependências e que faça todas as alterações necessárias numa única operação.
A figura a seguir mostra detalhes de dependência entre a tabela (Entidade Personalizada) e um aplicativo controlado por modelo (MyApp).
Com base nos dados exibidos, você pode observar que o componente dependente pertence a uma solução chamada Ative. Isto indica que a dependência foi criada ao importar uma solução não gerida ou através de uma personalização não gerida que foi executada através da API ou IU moderna.
Para remover esta dependência, pode:
- Editar a definição da aplicação condicionada por modelo para remover qualquer referência à entidade ou aos seus subcomponentes. Como as aplicações condicionadas por modelos suportam a publicação, tem de publicar as suas alterações.
- Eliminar a aplicação condicionada por modelo
Nota
Desinstalar uma solução não gerida não é uma opção para remover esta dependência, porque as soluções não geridas são apenas uma forma de agrupar componentes.
Ações para remover uma dependência gerida
As dependências geridas são aquelas em que o componente dependente está associado a uma solução gerida. Para resolver este tipo de dependência, tem de agir na solução em que o componente foi adicionado. Essa ação pode ser diferente consoante aquilo que está a tentar fazer.
Se estiver a tentar desinstalar uma solução
Siga estes passos:
- No ambiente de destino, inspecione o link Camadas de Solução para encontrar qual é a solução mais avançada na lista do componente dependente.
- No ambiente de origem, prepare uma nova versão dessa solução em que a solução não contenha o componente dependente ou tenha uma versão atualizada do componente dependente que não contenha referências ao componente necessário. O seu objetivo consiste em remover qualquer referência aos componentes necessários na nova versão da solução.
- Exporte a nova versão da solução.
- No ambiente de destino, atualize essa solução.
- Repita a desinstalação.
Se você estiver a tentar atualizar uma solução
Neste caso, tem de confirmar que pretendia eliminar o componente necessário (lembre-se que as dependências são impostas apenas nos componentes que estão a ser eliminados).
Se não queria eliminar o componente, pode corrigir a nova versão da solução ao adicionar o componente de volta, fazendo o seguinte:
- No ambiente de destino, desinstale a solução em estágios (a solução que termina em _Upgrade).
- No ambiente de origem, adicione os componentes necessários de volta à solução.
- Exporte a nova versão.
- Repita a atualização de versão.
Se a eliminação for intencional, tem de remover a dependência. Experimente as etapas descritas na secção anterior, se você estiver a tentar desinstalar uma solução.
Camadas e dependências
Os componentes dependentes podem ser colocados em camadas, pelo que pode ter de alterar mais de uma solução para remover totalmente uma dependência. O quadro de dependências calcula apenas as dependências entre as camadas superiores para os componentes necessários e dependentes. Isto significa que precisa de avançar de cima para baixo nas soluções do componente dependente.
Considere o seguinte cenário de exemplo:
Experimente desinstalar a Solução - Entidade Personalizada e a operação é bloqueada por dependências.
Comece a diagnosticar a dependência ao selecionar Camadas de Solução no atributo new_numberfield. Você observa a seguinte tela:
Como as dependências são criadas apenas entre as camadas superiores de cada componente, o primeiro passo é lidar com a dependência entre o atributo new_numberfield em SolutionCustomEntity e o fluxo de trabalho Fluxo de Trabalho de Teste em SolutionWorkflow3.
Para remover a dependência, decide desinstalar SolutionWorkflow3. Faça-o, mas quando tenta desinstalar a solução mais uma vez, é-lhe apresentada pela mesma página de dependências:
No entanto, a coluna new_numberfield não está mais listada, mesmo que exista em mais camadas.
Ações para remover uma dependência não gerida
Para remover as dependências não geridas, é necessário agir diretamente nos componentes, não nas soluções a que pertencem. Por exemplo, se quiser remover as dependências entre uma coluna e um formulário, edite-o no designer de formulário e remova a coluna do formulário. A dependência é removida depois de selecionar Salvar e Publicar.
Nota
- O comando Mostrar dependências permite-lhe tomar medidas para ver, remover a dependência, editar o componente ou eliminar o componente. Mais informações: Ver dependências de um componente
- O botão Exibir dependências aparece quando você tenta excluir um componente que tem dependências. Embora esta tela permita que você visualize a dependência, ela não permite que você tome medidas.
- Quando você exclui o componente dependente, a ação exclui todas as dependências , juntamente com o componente.
Para ver as dependências de um componente, a partir da área Soluções, abra a solução pretendida, selecione as reticências verticais junto do componente e, em seguida, selecione Avançadas>Mostrar dependências.
A página de dependências tem duas partes distintas:
- Componentes dependentes: uma lista de componentes que dependem da coluna selecionada. Em outras palavras, esses componentes têm essa coluna como componente necessário.
- Componentes necessários: uma lista de componentes que esta coluna requer para funcionar. Em outras palavras, esses componentes têm essa coluna como seu componente dependente.