Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Denne artikel er en reference til det YAML-baserede versionsstyringsformat, der bruges, når du:
- Bekræft løsninger ved hjælp af oprindelig Dataverse Git-integration i Power Apps.
- Udtræk løsninger ved hjælp af
pac solution cloneellerpac solution sync. - Kør SolutionPackager manuelt mod en mappe, der indeholder YAML-manifestfiler.
YAML-formatet adskiller sig fra det klassiske XML-layout. Det er vigtigt at forstå strukturen, når du manuelt vil pakke en YAML-mappe tilbage til en .zip fil, som Dataverse kan importere.
Vigtigt!
Understøttelse af YAML-versionsstyringsformat i kommandolinjegrænsefladen pac kræver Microsoft. PowerApps.CLI version 2.4.1 eller nyere. Download den nyeste version fra NuGet eller opdater via pac install latest. SolutionPackager.exe, der leveres sammen med NuGet-pakken, understøtter YAML-formatet fra den samme version.
Oversigt over mappestruktur
En lagerrod i YAML-format indeholder følgende mapper på øverste niveau:
<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]/
Mapperne solutions/ og publishers/ er påkrævet. Alle komponentmapper i roden er valgfrie og afhænger af, hvad løsningen indeholder.
Vigtigt!
Alle YAML-manifestfiler (solution.yml, publisher.ymlosv.) skal placeres under deres respektive undermapper (solutions/<name>/, publishers/<name>/). Hvis de placeres i lagerroden, forhindres formateringsregistrering, og SolutionPackager-værktøjet falder tilbage til XML-formatet, hvilket medfører en vildledende fejl om en manglende Customizations.xml. Flere oplysninger: Fejlfinding af SolutionPackager-værktøj
Formatér automatisk registrering
SolutionPackager (og pac solution pack) registrerer automatisk formatet på følgende måde:
| Betingelse | Registreret format | Adfærd |
|---|---|---|
solutions/*/solution.yml fundet – én løsning |
YAML | Løsningsnavnet blev udledt fra navnet på undermappen |
solutions/*/solution.yml found – flere løsninger |
YAML |
/SolutionName argument, der kræves for at angive, hvilken løsning der skal pakkes |
Der findes ingen solutions/ undermappe |
XML (ældre) | Forventer Other\Solution.xml og Other\Customizations.xml |
Manifestfiler
solution.yml
Placeret på solutions/<SolutionUniqueName>/solution.yml. Indeholder løsningsmetadata på øverste niveau – YAML-ækvivalenten af solution.xml i XML-formatet.
Nøglefelter omfatter løsningens entydige navn, version, brugervenlige navn, beskrivelse og en reference til udgiveren.
solutioncomponents.yml
Placeret på solutions/<SolutionUniqueName>/solutioncomponents.yml. Viser relative stier til alle komponentfiler, der er inkluderet i denne løsning. SolutionPackager læser denne fil under pakken for at finde komponentkilder.
Eksempel på uddrag:
- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher
rootcomponents.yml
Placeret på solutions/<SolutionUniqueName>/rootcomponents.yml. Viser en liste over de komponenter på rodniveau (typisk tabeller og andre objekter på øverste niveau), der hører til denne løsning.
Bemærkning
Hvis en komponent erklæres i , men kildefilerne ikke findes i rootcomponents.yml mappen (f.eks. en lærredsappfil .msapp under canvasapps/<name>/), udsender SolutionPackager en advarsel og udelader komponenten fra den pakkede .zip. Pakkehandlingen fuldføres stadig med afslutningskoden 0.
Pakkesucces garanterer ikke, at importen lykkedes. Hvis solutioncomponents.yml udelader påkrævede afhængighedsstier – f.eks. overordnede objektmapper eller relationsdefinitioner under entityrelationships/ – pakker løsningen uden fejl, men mislykkes ved import med en meddelelse som f.eks.: "Attributter mangler tilknyttede relationsdefinitioner". Sørg altid for, at solutioncomponents.yml alle afhængige objekter og relationer medtages, ikke kun de løsningsejede.
missingdependencies.yml
Placeret på solutions/<SolutionUniqueName>/missingdependencies.yml. Registrerer alle løsningsafhængigheder, der ikke var til stede, da løsningen sidst blev eksporteret. Bruges til orientering og til at validere fuldstændigheden ved import.
publisher.yml
Placeret på publishers/<PublisherUniqueName>/publisher.yml. Indeholder udgiverdefinitionen – entydigt navn, vist navn, tilpasningspræfiks og præfiks for indstillingsværdi.
Minimal påkrævet 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:
Understøttelse af komponenttype
I følgende tabel vises, hvordan hver komponenttype håndteres i YAML-formatet.
| Komponenttype | I YAML-format | Bemærkninger |
|---|---|---|
| Objekter (tabeller), attributter, formularer, visninger | ✓ YAML-filer | Gemt som individuelle YAML-filer pr. underkomponent |
| Arbejdsprocesser (klassisk) | ✓ YAML-filer | Under workflows/ |
| Moderne flow (Power Automate cloudflow) | ✓ – kun YAML-format | Under modernflows/; understøttes ikke i XML-format |
| Canvas-apps | ✓ – kun YAML-format |
.msapp Binær under canvasapps/<name>/; understøttes ikke i XML-format |
| Definitioner af miljøvariabler | ✓ XML-filer | Individuelle .xml filer under environmentvariabledefinitions/ |
| Værdier for miljøvariabel | ✓ JSON-fil | Gemt som environment_variable_values.json |
| Brugerdefinerede connectorer | ✓ | Under connectors/ |
| Plug-in-assemblies | ✓ | Fuldt kvalificerede typenavne gentilsluttes som standard (/remapPluginTypeNames) |
| Webressourcer | ✓ | Under webresources/ |
| Sikkerhedsroller | ✓ | Gemt som XML internt. filtreret pr. løsning |
| Grupperede indstillinger (global) | ✓ | Gemt som XML. filtreret pr. løsning |
| Dashboards | ✓ | Gemt som XML. filtreret pr. løsning |
| Webstedsoversigter | ✓ | Gemt som XML. filtreret pr. løsning |
| Tilpasninger af båndet | ✓ | Gemt som XML. filtreret pr. løsning |
| Objektrelationer | ✓ | Under entityrelationships/ |
Bemærkning
Komponenter, der gemmes som XML internt, konverteres automatisk mellem XML og YAML under pakke- og udpakningshandlinger. Du kan skrive dem som YAML-filer. værktøjet håndterer konverteringen.
Lagre med flere løsninger
En enkelt lagerrod kan indeholde flere løsninger. Alle løsninger deler de samme komponentmapper. solutioncomponents.yml i hver løsning styrer, hvilke komponentstier der tilhører den pågældende løsning.
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 mappe med flere løsninger
Ved hjælp af SolutionPackager.exe:
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Brug pac solution pack (kun mapper med én løsning – brug SolutionPackager.exe direkte sammen med /SolutionName) til flere løsninger:
pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo
Bemærkning
Når du bruger oprindelig Dataverse Git-integration med miljøbinding, deler alle løsninger i miljøet en enkelt lagerrod ved hjælp af layoutet med flere løsninger. Når du bruger løsningsbinding, kan hver løsning bindes til en separat mappe.
Arbejde med YAML-formatmapper
Pak en YAML-mappe til 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
Hent en komplet YAML-mappe fra Dataverse
Den anbefalede måde at få en komplet YAML-mappe, der kan pakkes, er at bruge pac solution clone:
pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo
Dette udtrækker løsningen til YAML-formatet, herunder alle komponentkildefiler. Du kan også bruge oprindelig Git-integration til at bekræfte fra Power Apps – de bekræftede filer er i YAML-format og kan pakkes fuldt ud.
Kontrollér mappen, før du pakker den
Kontrollér, at mappen solutions/<name>/ findes, og at alle stier i solutioncomponents.yml oversættes til faktiske filer. Manglende stier resulterer i advarsler under pakken, og disse komponenter udelades.
Relation til Git-integration af dataverse
YAML-versionsstyringsformatet er det vedtagne format, der bruges af Integration af Dataverse Git. Når oprettere anvender løsninger fra Power Apps, bruger de filer, der er skrevet til Azure DevOps dette format. Først-udviklere kan arbejde med det samme lager ved hjælp af de kommandolinjegrænsefladeværktøjer, der er beskrevet her.
Du kan få oplysninger om, hvordan du opretter forbindelse mellem miljøer og Git, under Konfiguration af Git-integration af Dataverse.