opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
V tem članku je sklic na obliko kontrolnika vira, ki temelji na yaml, ki se uporablja, ko:
- Uveljavite rešitve z izvorno Zverzno integracijo Git v Power Apps.
- Ekstrahiraj rešitve z
pac solution clonealipac solution sync. - Ročno zaženite SolutionPackager v mapi, ki vsebuje datoteke manifesta YAML.
Oblika zapisa YAML se razlikuje od klasične postavitve XML. Razumevanje strukture je pomembno, ko želite ročno za paket yaml mapo nazaj v datoteko .zip , ki jo Dataverse lahko uvozi.
Pomembno
Podpora za obliko zapisa nadzora vira YAML v pac CLI zahteva Microsoft. PowerApps.CLI, različica 2.4.1 ali novejša. Prenesite najnovejšo različico s spletnega mesta NuGet ali posodobitev prek pac install latest. SolutionPackager.exe, ki je priložen paketu NuGet, podpira obliko zapisa YAML iz iste različice.
Pregled strukture mape
Koren skladišča v obliki zapisa YAML vsebuje te imenike najvišje ravni:
<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]/
Imeniki solutions/publishers/ in imeniki so obvezni. Vse mape komponent v korenu so izbirne in odvisne od tega, kaj rešitev vsebuje.
Pomembno
Vse datoteke z manifestom YAML (solution.yml, publisher.ymlin tako naprej) je treba postaviti v ustrezne podimenike (solutions/<name>/, publishers/<name>/). Če jih postavite v koren skladišča, se prepreči zaznavanje oblik, orodje SolutionPackager pa se vrne v obliko XML – kar povzroči zavajajočo napako o manjkajočem Customizations.xml. Več informacij: Odpravljanje težav z orodjem SolutionPackager
Oblikuj samodejno zaznavanje
SolutionPackager (in pac solution pack) samodejno zazna obliko zapisa tako:
| Pogoj | Zaznana oblika zapisa | Način delovanja |
|---|---|---|
solutions/*/solution.yml najdena – ena rešitev |
YAML | Ime rešitve iz imena podmape |
solutions/*/solution.yml najdeno – več rešitev |
YAML |
/SolutionName argument, ki je potreben za določanje rešitve za pakiranje |
Podimenik solutions/ ni prisoten |
XML (podedovano) | Pričakuje in Other\Solution.xmlOther\Customizations.xml |
Manifestne datoteke
solution.yml
Nahaja se na solutions/<SolutionUniqueName>/solution.yml. Vsebuje metapodatke rešitve najvišje ravni – enakovredno datoteko YAML solution.xml v obliki zapisa XML.
V poljih ključa so enolično ime rešitve, različica, prijazno ime, opis in sklic na izdajatelja.
solutioncomponents.yml
Nahaja se na solutions/<SolutionUniqueName>/solutioncomponents.yml. Navaja relativne poti do vseh datotek komponent, vključenih v to rešitev. SolutionPackager prebere to datoteko med paketom, da poišče vire komponent.
Primer odlomka:
- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher
rootcomponents.yml
Nahaja se na solutions/<SolutionUniqueName>/rootcomponents.yml. Navede komponente korenske ravni (običajno tabele in druge predmete najvišje ravni), ki pripadajo tej rešitvi.
opomba,
Če je komponenta deklarirana, vendar v mapi ni izvornih datotek (rootcomponents.yml.msappna primer datoteka aplikacije platna v ), SolutionPackager canvasapps/<name>/izpakira opozorilo in .zip izpakira to komponento. Postopek paketa se še vedno uspešno zaključi z izhodno kodo 0.
Uspeh paketa ne zagotavlja uspeha pri uvozu. Če solutioncomponents.yml izpustite zahtevane poti odvisnosti , entityrelationships/ kot so mape nadrejene entitete ali definicije odnosov v razdelku – paketi rešitev brez napake, vendar ne uspejo pri uvozu s sporočilom, kot je: »Atributom manjkajo definicije povezanih relacij .« Vedno poskrbite solutioncomponents.yml , da bodo vključene vse odvisne entitete in odnosi, ne le tiste, ki so v lasti rešitve.
missingdependencies.yml
Nahaja se na solutions/<SolutionUniqueName>/missingdependencies.yml. Zabeleži vse odvisnosti rešitev, ki niso bile prisotne, ko je bila rešitev nazadnje izvožena. Uporablja se za informativne namene in za preverjanje popolnosti pri uvozu.
publisher.yml
Nahaja se na publishers/<PublisherUniqueName>/publisher.yml. Vsebuje definicijo izdajatelja – enolično ime, prikazano ime, predpono prilagoditve in predpono vrednosti možnosti.
Najmanjša zahtevana struktura:
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:
Podpora za vrsto komponente
V spodnji tabeli je seznam, kako je posamezna vrsta komponente obravnavana v obliki zapisa YAML.
| Vrsta komponente | V obliki zapisa YAML | Beležke |
|---|---|---|
| Entitete (tabele), atributi, obrazci, pogledi | 3. Datoteke YAML | Shranjeno kot posamezne datoteke YAML na podkomcomponent |
| Poteki dela (klasična) | 3. Datoteke YAML | Pod workflows/ |
| Sodobni tokovi (Power Automate tokov v oblaku) | 3. Samo oblika zapisa YAML | V razdelku modernflows/; ni podprto v obliki zapisa XML |
| Aplikacije na osnovi delovnega območja | 3. Samo oblika zapisa YAML |
.msapp binary under canvasapps/<name>/; not supported in XML format |
| Definicije spremenljivk okolja | 3. Datoteke XML | Posamezne datoteke .xml v razdelku environmentvariabledefinitions/ |
| Vrednosti spremenljivk okolja | 3. Datoteka JSON | Shranjeno kot environment_variable_values.json |
| Priključki po meri | ✓ | Pod connectors/ |
| Zbiri vtičnikov | ✓ | Popolnoma določena imena vrst so privzeto znova preskočena (/remapPluginTypeNames) |
| Spletni viri | ✓ | Pod webresources/ |
| Varnostne vloge | ✓ | Shranjeno kot interno XML; filtrirano na rešitev |
| Nabori možnosti (globalno) | ✓ | Shranjeno kot XML; filtrirano na rešitev |
| Nadzorne plošče | ✓ | Shranjeno kot XML; filtrirano na rešitev |
| Zemljevidi mesta | ✓ | Shranjeno kot XML; filtrirano na rešitev |
| Prilagoditve traku | ✓ | Shranjeno kot XML; filtrirano na rešitev |
| Odnosi entitete | ✓ | Pod entityrelationships/ |
opomba,
Komponente, ki so interno shranjene kot XML, se med operacijami pakiranja in razpakiranja samodejno pretvorijo med XML in YAML. Lahko jih ustvarite kot datoteke YAML; orodje obravnava pretvorbo.
Skladišča z več rešitevami
En koren skladišča lahko vsebuje več rešitev. Vse rešitve imajo iste mape komponent; solutioncomponents.yml v vsakem kontrolniku rešitve, katere poti komponent pripadajo tej rešitvi.
Vzorčna struktura z dvema rešitvami:
<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/
Pakiranje določene rešitve iz mape z več raztopinami
Uporaba SolutionPackager.exe:
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Uporaba pac solution pack (samo mape z eno rešitvijo – za več rešitev uporabite SolutionPackager.exe neposredno z /SolutionName):
pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo
opomba,
Pri uporabi izvorne integracije storitve Dataverse Git z vezavo okolja si vse rešitve v okolju delijo en koren skladišča s postavitvijo z več rešitvami. Ko uporabljate vezavo rešitve, je lahko vsaka rešitev vezana na ločeno mapo.
Delo z mapami z oblikami zapisa YAML
Pakiranje mape YAML v .zip datoteko
# 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
Pridobite celotno mapo YAML iz storitve Dataverse
Priporočen način za pridobitev popolne mape YAML, ki jo je mogoče za pakiranje, je uporaba pac solution clone:
pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo
S tem izvlečete rešitev v obliki zapisa YAML, vključno z vsemi izvornimi datotekami komponent. Lahko pa uporabite izvorno integracijo storitve Git za uveljavitev Power Apps – potrjene datoteke so v obliki zapisa YAML in jih je mogoče v celoti za pakiranje.
Pred pakiranjem preverite mapo
Preverite, ali mapa solutions/<name>/ obstaja in solutioncomponents.yml ali so vse poti razrešene v dejanske datoteke. Če manjkajo poti, se med pakiranjem prikažejo opozorila, te komponente pa so izpuščene.
Relationship to Dataverse Git integration
Oblika nadzora vira YAML je kanonična oblika zapisa, ki jo uporablja integracija s storitvijo Dataverse Git. Ko ustvarjalci uveljavijo rešitve iz Power Apps, datoteke, napisane v ponudniku Git, uporabljajo to obliko zapisa. Razvijalci, ki prvi uporabljajo kodo, lahko delajo z istim skladiščem z orodji CLI, opisanimi tukaj.
Če želite informacije o povezovanju okolij s storitvijo Git, glejte Nastavitev integracije s storitvijo Dataverse Git.