Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A ferramenta Solution Packager pode ser utilizada com qualquer sistema de controlo de código fonte. Depois de um ficheiro .zip ser extraído para uma pasta, adicione e submeta os ficheiros para o seu sistema de controlo de código fonte. Em seguida, estes ficheiros podem ser sincronizados noutro computador onde podem ser comprimidos num novo ficheiro .zip idêntico da solução.
Um aspeto importante ao utilizar ficheiros de componentes extraídos no controlo de código fonte é que adicionar todos os ficheiros ao controlo de código fonte poderá causar duplicações desnecessárias. Aceda à Referência do Ficheiro do Componente da Solução para ver que ficheiros são gerados para cada tipo de componente e quais os ficheiros recomendados para utilização no controlo de código fonte.
À medida que forem necessárias mais personalizações e alterações à solução, os programadores devem editar ou personalizar os componentes através dos meios existentes, exportá-los novamente para criar um ficheiro .zip e extrair o ficheiro de solução comprimido na mesma pasta.
Importante
Exceto para as secções descritas em Quando deve editar o ficheiro de personalização, a edição manual dos ficheiros de componentes extraídos e dos ficheiros .zip não é suportada.
Quando a ferramenta Solution Packager extrai os ficheiros de componente, não substitui os ficheiros de componente existentes com o mesmo nome se o conteúdo do ficheiro for idêntico. Além disso, a ferramenta respeita o atributo só de leitura nos ficheiros de componente que produzem um aviso na janela da consola a informar que os ficheiros específicos não foram escritos. Esta proteção permite ao utilizador verificar, a partir do controlo de código fonte, o conjunto mínimo de ficheiros que estão a ser alterados. O parâmetro /clobber pode ser utilizado para substituir e fazer com que os ficheiros só de leitura sejam escritos ou eliminados. O parâmetro /allowWrite pode ser usado para avaliar o impacto que uma operação de extração tem sem realmente fazer com que quaisquer ficheiros sejam escritos ou eliminados. A utilização do parâmetro /allowWrite com registo verboso é eficaz.
Após a conclusão da operação de extração com o conjunto mínimo de ficheiros verificados a partir do controlo de código fonte, um programador pode submeter os ficheiros alterados de volta ao controlo de código fonte, como é feito com qualquer outro tipo de ficheiro de origem.
Formatos de ficheiro de sistemas de controlo de versões
A ferramenta Solution Packager suporta dois formatos de ficheiro para ficheiros de componentes extraídos. Escolher o formato certo desde o início evita ter de migrar a estrutura do repositório mais tarde.
| Formato XML (legado) | Formato de controlo de código fonte YAML | |
|---|---|---|
| Manifesto da solução | Other\Solution.xml + Other\Customizations.xml |
solutions/<name>/solution.yml e suportar ficheiros YAML |
| Legibilidade | Verbose XML | YAML compacto — mais fácil de ler e analisar |
| Qualidade de diferença no Git | Grandes diferenciais XML | Diferenças mínimas e focadas |
| Repositório multi-solução | Não suportado | Suportado — múltiplas soluções partilham uma pasta |
| Aplicações Canvas (.msapp) | Não suportado | Suportado |
| Fluxos Modernos | Não suportado | Suportado |
| Integração nativa com Git | Não utilizado | Sempre usado — a integração Git escreve sempre YAML |
Quando usar o formato YAML: Para todos os projetos novos, e sempre que usares integração nativa com o Dataverse com Git. O formato YAML é compatível com versões futuras e produz um histórico de alterações mais limpo.
Quando usar o formato XML: Só quando se trabalha com repositórios existentes que já usam o formato XML, ou quando se usa ferramentas legadas que não suportam YAML.
Observação
Quando efetua commits de soluções usando a integração nativa do Git no Power Apps, elas são sempre armazenadas no formato do sistema de controlo de versões YAML. Para empacotar ou descompactar manualmente essa fonte usando o SolutionPackager ou pac solution pack, a pasta deve seguir a estrutura de pastas YAML. Mais informações: Ferramenta SolutionPackager — Formatos de ficheiros de controlo de versões
Desenvolvimento de equipa
Quando estão vários programadores a trabalhar no mesmo componente de solução, pode surgir um conflito em que as alterações de dois programadores resultam em alterações a um único ficheiro. Esta ocorrência é minimizada ao decompor cada componente ou subcomponente editável individualmente num ficheiro distinto. Considere o exemplo seguinte.
O programador A e B estão ambos a trabalhar na mesma solução.
Em computadores independentes, ambos obtêm as fontes mais recentes da solução através do controlo de fonte, empacotam e importam um .zip ficheiro de solução não gerida em organizações independentes do Microsoft Dataverse.
O Desenvolvedor A personaliza a visualização do sistema "Contactos Ativos" e o formulário principal para a entidade Contacto.
O Programador B personaliza o formulário principal para a entidade Conta e altera a "Vista de Pesquisa de Contactos".
Os dois programadores exportam um ficheiro .zip da solução não gerida e extraem.
O Desenvolvedor A terá de verificar um ficheiro para o formulário principal de Contacto e outro para a vista "Contactos Ativos".
O programador B terá de fazer check-out de um ficheiro para o formulário principal da Conta e um ficheiro para a "Vista de Pesquisa de Contacto".
Ambos os programadores podem submeter, por qualquer ordem, uma vez que as respetivas alterações tocaram em ficheiros separados.
Depois de concluídas ambas as submissões, podem repetir o passo n.º 2 e, em seguida, continuar a fazer novas alterações nas respetivas organizações independentes. Cada um tem ambos os conjuntos de alterações, sem substituições do próprio trabalho.
O exemplo anterior só funciona quando há alterações a ficheiros separados. É inevitável que as personalizações independentes exijam alterações num único ficheiro. Com base no exemplo mostrado anteriormente, considere que o programador B personalizou a vista de "Contactos Ativos" enquanto o programador A também a estava a personalizar. Neste novo exemplo, a ordem dos eventos torna-se importante. O processo correto para reconciliar este problema, indicado na íntegra, é descrito aqui.
O programador A e B estão ambos a trabalhar na mesma solução.
Em computadores independentes, ambos obtêm as mais recentes fontes da solução a partir do controlo de origem, criam pacotes e importam um ficheiro .zip da solução não gerida em organizações distintas.
O Desenvolvedor A personaliza a vista do sistema "Contactos Ativos" e o formulário principal para a tabela de contactos.
O Programador B personaliza o formulário principal para a tabela Conta e altera “Contactos Ativos”.
Ambos os programadores exportam um ficheiro .zip da solução não gerida e extraem o conteúdo.
O Desenvolvedor A terá de verificar um ficheiro para o formulário principal de Contacto e outro para a vista "Contactos Ativos".
O Desenvolvedor B terá de verificar um ficheiro para o formulário principal da Conta e um ficheiro para a vista "Contactos Ativos".
O programador A está pronto primeiro.
Antes de o programador A submeter ao controlo de código fonte, é necessário obter as origens mais recentes para garantir que nenhuma submissão anterior conflita com as suas alterações.
Não há conflitos, pelo que o programador A pode submeter.
O programador B está pronto a seguir ao programador A.
Antes de o programador B submeter, é necessário obter as origens mais recentes para garantir que não há verificações anteriores em conflito com as alterações.
Há um conflito porque o ficheiro de "Contactos Ativos" foi modificado desde a última vez que o programador B recuperou as fontes mais recentes.
O programador B tem de reconciliar o conflito. É possível que as capacidades do sistema de controlo de código fonte em uso possam ajudar neste processo; caso contrário, as seguintes escolhas são todas viáveis.
O programador B, através do histórico de controlo de origem, se disponível, pode notar que o programador A fez a alteração anterior. Através da comunicação direta, podem debater cada alteração. Em seguida, o programador B só tem de atualizar a organização com a resolução acordada. Em seguida, o programador B exporta, extrai e substitui o ficheiro em conflito e submete.
Permitir que o controlo de origem substitua o ficheiro local. O programador B empacota a solução e importa-a para a organização, depois avalia o estado da visualização e personaliza-a novamente, conforme necessário. Em seguida, o programador B pode exportar, extrair e substituir o ficheiro em conflito.
Se a alteração anterior for considerada desnecessária, o programador B permite que a sua cópia do ficheiro substitua a versão no controlo de código fonte e submete.
Quer esteja a trabalhar num ambiente partilhado ou num ambiente independente, o desenvolvimento de soluções do Dataverse em equipa exige que aqueles que trabalham ativamente numa solução comum estejam cientes do trabalho dos outros. A ferramenta Solution Packager não remove totalmente esta necessidade, mas permite uma intercalação fácil das alterações que não estão em conflito a nível do controlo de código fonte e realça proativamente os componentes concisos onde surgem conflitos.
As secções seguintes são os processos genéricos para utilizar eficazmente a ferramenta Solution Packager no controlo de origem ao programar com equipas. Também trabalham com ambientes independentes ou ambientes de desenvolvimento partilhados, apesar de com os ambientes partilhadas a exportação e a extração inclui naturalmente todas as alterações presentes na solução, não apenas as efetuadas pelo programador que está a efetuar a exportação. Da mesma forma, ao importar um ficheiro .zip de solução, é comum que todos os componentes sejam substituídos.
Criar uma solução
Este procedimento identifica os passos típicos utilizados quando cria uma solução pela primeira vez.
Num ambiente limpo com o Dataverse, crie uma solução e, em seguida, adicione ou crie componentes conforme necessário.
Quando estiver pronto para fazer check-in, siga estes passos.
Exporte a solução não-gestionada.
Com a ferramenta Solution Packager, extraia a solução em ficheiros de componentes.
A partir dos ficheiros de componentes extraídos, adicione os ficheiros necessários ao controlo de origem.
Envie estas alterações para o controlo de origem.
Modificar uma solução
O seguinte procedimento identifica os passos típicos utilizados quando modifica uma solução existente.
Sincronize ou obtenha as fontes mais recentes dos ficheiros de componentes da solução.
Usando a ferramenta Solution Packager, empacote os ficheiros de componentes num ficheiro .zip de solução não gerida.
Importe o ficheiro de solução não gerido para um ambiente.
Personalize e edite a solução conforme necessário.
Quando estiver pronto para efetuar as alterações no controlo de versão, siga estes passos.
Exporte a solução não gerida.
Com a ferramenta Solution Packager, extraia a solução exportada para ficheiros de componentes.
Sincronize ou obtenha as mais recentes fontes a partir do controlo de versão.
Reconcilie se existirem conflitos.
Envie as alterações para o controlo de origem.
Os passos 2 e 3 têm de ser feitos antes de ocorrerem mais personalizações na organização de desenvolvimento. No passo 5, o passo B tem de ser concluído antes do passo c.
Consulte também
Referência de Ficheiro do Componente da Solução (SolutionPackager)
SolutionPackager Ferramenta
Formatos de ficheiro de controlo de versões