Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Denne artikkelen er en referanse for det YAML-baserte kildekontrollformatet som brukes når du:
- Utfør løsninger ved hjelp av opprinnelig Dataverse Git-integrasjon i Power Apps.
- Trekk ut løsninger ved hjelp av
pac solution cloneellerpac solution sync. - Kjør SolutionPackager manuelt mot en mappe som inneholder YAML-manifestfiler.
YAML-formatet er forskjellig fra det klassiske XML-oppsettet. Det er viktig å forstå strukturen når du vil pakke en YAML-mappe manuelt tilbake til en .zip fil som Dataverse kan importere.
Viktig!
STØTTE for YAML-kildekontrollformat i pac CLI krever Microsoft. PowerApps.CLI versjon 2.4.1 eller nyere. Last ned den nyeste versjonen fra NuGet eller oppdater via pac install latest. SolutionPackager.exe, som leveres med NuGet-pakken, støtter YAML-formatet fra samme versjon.
Oversikt over mappestruktur
En repositoriumrot i YAML-format inneholder følgende kataloger på øverste nivå:
<repositoryRoot>/
├── solutions/
│ └── <SolutionUniqueName>/ (one subfolder per solution)
│ ├── solution.yml
│ ├── solutioncomponents.yml
│ ├── rootcomponents.yml
│ └── missingdependencies.yml
├── publishers/
│ └── <PublisherUniqueName>/ (one subfolder per publisher)
│ └── publisher.yml
├── entities/ (entity components, if any)
│ └── <entity_schema_name>/
│ ├── attributes/
│ ├── formxml/
│ ├── savedqueries/
│ └── ...
├── workflows/ (classic workflow definitions, if any)
├── modernflows/ (Power Automate cloud flows, if any)
├── canvasapps/ (canvas app .msapp files, if any)
│ └── <canvas_app_schema_name>/
│ └── <name>.msapp
├── environmentvariabledefinitions/ (environment variable definitions, if any)
├── connectors/ (custom connectors, if any)
└── [other component folders]/
publishers/ Og solutions/ kataloger kreves. Alle komponentmapper ved roten er valgfrie og avhenger av hva løsningen inneholder.
Viktig!
Alle YAML-manifestfiler (solution.yml, publisher.ymlog så videre) må plasseres under de respektive underkatalogene (solutions/<name>/, publishers/<name>/). Hvis du plasserer dem på repositoriumroten, forhindres formatgjenkjenning og gjør at SolutionPackager-verktøyet faller tilbake til XML-formatet , noe som gir en misvisende feil om manglende Customizations.xml. Mer informasjon: Feilsøking av Løsningspakkeverktøy
Formater automatisk gjenkjenning
SolutionPackager (og pac solution pack) gjenkjenner formatet automatisk på følgende måte:
| Betingelse | Oppdaget format | Virkemåte |
|---|---|---|
solutions/*/solution.yml funnet – én løsning |
YAML | Løsningsnavn utledet fra undermappenavnet |
solutions/*/solution.yml funnet – flere løsninger |
YAML |
/SolutionName argumentet som kreves for å angi hvilken løsning som skal pakkes |
Ingen solutions/ underkatalog til stede |
XML (eldre) |
Other\Solution.xml Forventer ogOther\Customizations.xml |
Manifestfiler
solution.yml
Plassert på solutions/<SolutionUniqueName>/solution.yml. Inneholder løsningsmetadata på øverste nivå – YAML-ekvivalenten solution.xml i XML-formatet.
Nøkkelfelt inkluderer løsningens unike navn, versjon, egendefinert navn, beskrivelse og en referanse til utgiveren.
solutioncomponents.yml
Plassert på solutions/<SolutionUniqueName>/solutioncomponents.yml. Viser relative baner til alle komponentfiler som er inkludert i denne løsningen. SolutionPackager leser denne filen under pakken for å finne komponentkilder.
Eksempelutdrag:
- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher
rootcomponents.yml
Plassert på solutions/<SolutionUniqueName>/rootcomponents.yml. Viser komponentene på rotnivå (vanligvis tabeller og andre objekter på øverste nivå) som tilhører denne løsningen.
Bemerkning
Hvis en komponent deklareres i rootcomponents.yml , men kildefilene er fraværende fra mappen (for eksempel en lerretsappfil .msapp under canvasapps/<name>/), avgir SolutionPackager en advarsel og utelater komponenten fra den pakkede .zip. Pakkeoperasjonen fullføres fortsatt med avslutningskode 0.
Pakkesuksess garanterer ikke at importen lykkes. Hvis solutioncomponents.yml utelater nødvendige avhengighetsbaner, for eksempel overordnede enhetsmapper eller relasjonsdefinisjoner under entityrelationships/ , pakker løsningspakkene uten feil, men mislykkes ved import med en melding som: «Attributter mangler tilknyttede relasjonsdefinisjoner.» Sørg alltid for at solutioncomponents.yml du inkluderer alle avhengige enheter og relasjoner, ikke bare de løsningseide.
missingdependencies.yml
Plassert på solutions/<SolutionUniqueName>/missingdependencies.yml. Registrerer eventuelle løsningsavhengigheter som ikke var til stede da løsningen sist ble eksportert. Brukes til informasjonsformål og for å validere fullstendighet ved import.
publisher.yml
Plassert på publishers/<PublisherUniqueName>/publisher.yml. Inneholder utgiverdefinisjonen – unikt navn, visningsnavn, tilpassingsprefiks og prefiks for alternativverdi.
Minimal nødvendig struktur:
Publisher:
UniqueName: mypublisher
LocalizedNames:
LocalizedName:
'@description': My Publisher
'@languagecode': '1033'
Descriptions:
EMailAddress:
'@xsi:nil': 'true'
'@xmlns:xsi': http://www.w3.org/2001/XMLSchema-instance
SupportingWebsiteUrl:
'@xsi:nil': 'true'
'@xmlns:xsi': http://www.w3.org/2001/XMLSchema-instance
CustomizationPrefix: myp
CustomizationOptionValuePrefix: '12345'
Addresses:
Støtte for komponenttype
Tabellen nedenfor viser hvordan hver komponenttype håndteres i YAML-format.
| Komponenttype | I YAML-format | Merknader |
|---|---|---|
| Enheter (tabeller), attributter, skjemaer, visninger | ✓ YAML-filer | Lagret som individuelle YAML-filer per delkomponent |
| Arbeidsflyter (klassisk) | ✓ YAML-filer | Under workflows/ |
| Moderne flyter (Power Automate skyflyter) | ✓ — bare YAML-format | Under modernflows/; støttes ikke i XML-format |
| Lerretsapper | ✓ — bare YAML-format |
.msapp binær under canvasapps/<name>/; støttes ikke i XML-format |
| Miljøvariabeldefinisjoner | ✓ XML-filer | Individuelle .xml filer under environmentvariabledefinitions/ |
| Miljøvariabelverdier | ✓ JSON-fil | Lagret som environment_variable_values.json |
| Egendefinerte koblinger | ✓ | Under connectors/ |
| Plugin-modulsamlinger | ✓ | Fullstendige typenavn tilordnet på nytt som standard (/remapPluginTypeNames) |
| Nettressurser | ✓ | Under webresources/ |
| Sikkerhetsroller | ✓ | Lagret som XML internt. filtrert per løsning |
| Alternativsett (global) | ✓ | Lagret som XML. filtrert per løsning |
| Oversikter | ✓ | Lagret som XML. filtrert per løsning |
| Områdekart | ✓ | Lagret som XML. filtrert per løsning |
| Båndtilpasninger | ✓ | Lagret som XML. filtrert per løsning |
| Enhetsrelasjoner | ✓ | Under entityrelationships/ |
Bemerkning
Komponenter som er lagret som XML internt, konverteres automatisk mellom XML og YAML under pakke- og pakkeoperasjoner. Du kan redigere dem som YAML-filer. verktøyet håndterer konverteringen.
Repositorier med flere løsninger
En enkelt repositoriumrot kan inneholde flere løsninger. Alle løsninger deler de samme komponentmappene. solutioncomponents.yml i hver løsning kontrollerer hvilke komponentbaner som tilhører den løsningen.
Eksempelstruktur med to løsninger:
<repositoryRoot>/
├── solutions/
│ ├── SolutionA/
│ │ ├── solution.yml
│ │ ├── solutioncomponents.yml ← references entities/account, entities/contact
│ │ ├── rootcomponents.yml
│ │ └── missingdependencies.yml
│ └── SolutionB/
│ ├── solution.yml
│ ├── solutioncomponents.yml ← references entities/lead, workflows/myflow
│ ├── rootcomponents.yml
│ └── missingdependencies.yml
├── publishers/
│ └── SharedPublisher/
│ └── publisher.yml
├── entities/
│ ├── account/
│ ├── contact/
│ └── lead/
└── workflows/
└── myflow/
Pakke en bestemt løsning fra en flerløsningsmappe
Bruke SolutionPackager.exe:
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Bruk pac solution pack (bare enkeltløsningsmapper – for flerløsning, bruk SolutionPackager.exe direkte med /SolutionName):
pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo
Bemerkning
Når du bruker opprinnelig Datavers Git-integrasjon med miljøbinding, deler alle løsninger i miljøet én enkelt repositoriumrot ved hjelp av oppsettet med flere løsninger. Når du bruker løsningsbinding, kan hver løsning bindes til en egen mappe.
Arbeide med YAML-formatmapper
Pakke en YAML-mappe inn i en .zip fil
# Using pac CLI (single solution in folder)
pac solution pack --zipfile C:\output\MySolution.zip --folder C:\repos\myrepo
# Using SolutionPackager.exe directly (also works for multi-solution with /SolutionName)
SolutionPackager.exe /action:Pack /zipfile:C:\output\MySolution.zip /folder:C:\repos\myrepo
Få en fullstendig YAML-mappe fra Dataverse
Den anbefalte måten å få en komplett, pakkebar YAML-mappe på, er å bruke pac solution clone:
pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo
Dette trekker ut løsningen i YAML-formatet, inkludert alle komponentkildefiler. Alternativt kan du bruke opprinnelig Git-integrasjon til å utføre fra Power Apps – de forpliktede filene er i YAML-format og kan pakkes fullstendig.
Bekreft mappen før pakking
Kontroller at solutions/<name>/ mappen finnes, og at alle banene i solutioncomponents.yml løses til faktiske filer. Eventuelle manglende baner resulterer i advarsler under pakken, og disse komponentene utelates.
Relasjon til Git-integrasjon for datavers
YAML-kildekontrollformatet er det kanoniske formatet som brukes av Datavers Git-integrasjon. Når beslutningstakere utfører løsninger fra Power Apps, bruker filene som er skrevet til Azure DevOps dette formatet. Kode-først-utviklere kan arbeide med samme repositorium ved hjelp av CLI-verktøyene som er beskrevet her.
Hvis du vil ha informasjon om hvordan du kobler miljøer til Git, kan du se Konfigurasjon av Git-integrering for Dataverse.