Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Tento článok je odkaz na formát ovládacieho prvku zdroja založeného na YAML, ktorý sa používa v týchto prípadoch:
- Potvrdiť riešenia pomocou natívnej integrácie Dataverse Git v Power Apps.
- Extrahovanie riešení pomocou
pac solution clonealebopac solution sync. - Manuálne spustite solutionPackager v priečinku, ktorý obsahuje súbory manifestu YAML.
Formát YAML sa líši od klasického rozloženia XML. Pochopenie štruktúry je dôležité, ak chcete manuálne zbaliť priečinok YAML späť do .zip súboru, ktorý dokáže importovať dataverse.
Dôležité
Podpora formátu zdrojového ovládacieho prvku YAML v rozhraní pac CLI vyžaduje Microsoft. PowerApps.CLI verzia 2.4.1 alebo novšia. Najnovšiu verziu si stiahnite z lokality NuGet alebo aktualizujte prostredníctvom pac install latest. SolutionPackager.exe, ktorá sa dodáva s balíkom NuGet, podporuje formát YAML z rovnakej verzie.
Prehľad štruktúry priečinkov
Koreň odkladacieho priestoru vo formáte YAML obsahuje nasledujúce adresáre najvyššej úrovne:
<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]/
Zoznamy solutions/ a publishers/ sú povinné. Všetky priečinky súčastí v koreňovom adresári sú voliteľné a závisia od toho, čo riešenie obsahuje.
Dôležité
Všetky súbory manifestov YAML (solution.yml, publisher.ymlatď.) musia byť umiestnené pod príslušnými podadresármi (solutions/<name>/, publishers/<name>/). Ich umiestnenie do koreňa odkladacieho priestoru bráni detekcii formátu a spôsobí, že nástroj SolutionPackager sa vráti do formátu XML – čo spôsobuje zavádzajúcu chybu o chýbajúcej Customizations.xmlmnožine riešení . Ďalšie informácie: Riešenie problémov s nástrojmi SolutionPackager
Formátovanie automatického zisťovania
SolutionPackager (a pac solution pack) automaticky rozpozná formát takto:
| Podmienka | Zistený formát | Správanie |
|---|---|---|
solutions/*/solution.yml found – jedno riešenie |
YAML | Názov riešenia odvodený od názvu podpriečinka |
solutions/*/solution.yml nájdené – viaceré riešenia |
YAML |
/SolutionName argument required to specify which solution to pack (argument required to specify which solution to pack ( ktoré riešenie sa má zbaliť) |
Neexistuje žiadny solutions/ podadresár. |
XML (staršia verzia) | Očakáva Other\Solution.xml sa a Other\Customizations.xml |
Súbory manifestov
solution.yml
Nachádza sa na adrese solutions/<SolutionUniqueName>/solution.yml. Obsahuje metaúdaje riešenia najvyššej úrovne – ekvivalent solution.xml yaml vo formáte XML.
Kľúčové polia zahŕňajú jedinečný názov riešenia, verziu, popisný názov, popis a odkaz na vydavateľa.
solutioncomponents.yml
Nachádza sa na adrese solutions/<SolutionUniqueName>/solutioncomponents.yml. Obsahuje zoznam relatívnych ciest ku všetkým súborom súčastí zahrnutým v tomto riešení. SolutionPackager prečíta tento súbor počas balíka a vyhľadá zdroje súčastí.
Príklad výňatok:
- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher
rootcomponents.yml
Nachádza sa na adrese solutions/<SolutionUniqueName>/rootcomponents.yml. Uvádza súčasti koreňovej úrovne (zvyčajne tabuľky a iné objekty najvyššej úrovne), ktoré patria do tohto riešenia.
Poznámka
Ak je súčasť deklarovaná, ale jej zdrojové súbory sa v priečinku nenachádzajú (napríklad v súbore aplikácie rootcomponents.yml s plátnom v .msapp časti canvasapps/<name>/), SolutionPackager vyžaruje upozornenie a vynechá túto súčasť z balíka .zip. Operácia balíka sa úspešne dokončí pomocou kódu výstupu 0.
Úspech balíka nezaručuje úspešnosť importu. Ak solutioncomponents.yml vynechá požadované cesty závislosti – napríklad priečinky nadradenej entity alebo definície vzťahov v časti entityrelationships/ – balíky riešení bez chyby, ale pri importe zlyhá, zobrazí sa hlásenie typu : "Atribúty chýbajú priradené definície vzťahov.". Vždy zahrnujte solutioncomponents.yml všetky závislé entity a vzťahy, nielen tie vo vlastníctve riešenia.
missingdependencies.yml
Nachádza sa na adrese solutions/<SolutionUniqueName>/missingdependencies.yml. Zaznamenáva všetky závislosti riešenia, ktoré neboli prítomné pri poslednom exporte riešenia. Používa sa na informačné účely a na overenie úplnosti importu.
publisher.yml
Nachádza sa na adrese publishers/<PublisherUniqueName>/publisher.yml. Obsahuje definíciu vydavateľa – jedinečný názov, zobrazovaný názov, predponu prispôsobenia a predponu hodnoty možnosti.
Minimálna požadovaná štruktúra:
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 typu súčasti
Nasledujúca tabuľka uvádza spôsob narábania s jednotlivými typmi súčastí vo formáte YAML.
| Typ komponentu | Vo formáte YAML | Poznámky |
|---|---|---|
| Entity (tabuľky), atribúty, formuláre, zobrazenia | √ Súbory YAML | Uložené ako jednotlivé súbory YAML na vedľajší komentár |
| Pracovné postupy (klasické) | √ Súbory YAML | Pod workflows/ |
| Moderné postupy (Power Automate cloudové postupy) | √ — iba formát YAML | V časti modernflows/; nie je podporované vo formáte XML |
| Aplikácie plátna | √ — iba formát YAML |
.msapp binary under canvasapps/<name>/; nepodporované vo formáte XML |
| Definície premenných prostredia | √ Súbory XML | Jednotlivé .xml súbory v časti environmentvariabledefinitions/ |
| Hodnoty premennej prostredia | √ Súbor JSON | Uložené ako environment_variable_values.json |
| Vlastné konektory | ✓ | Pod connectors/ |
| Zostavy doplnkov | ✓ | Úplné názvy typov sa predvolene opätovne mapujú (/remapPluginTypeNames) |
| Webové prostriedky | ✓ | Pod webresources/ |
| Roly zabezpečenia | ✓ | uložené vo formáte XML interne; filtrované podľa riešenia |
| Množiny možností (globálne) | ✓ | Uložené ako XML; filtrované podľa riešenia |
| Tabule | ✓ | Uložené ako XML; filtrované podľa riešenia |
| Mapy lokality | ✓ | Uložené ako XML; filtrované podľa riešenia |
| Prispôsobenia pása s nástrojmi | ✓ | Uložené ako XML; filtrované podľa riešenia |
| Vzťahy entít | ✓ | Pod entityrelationships/ |
Poznámka
Súčasti uložené interne vo formáte XML sa počas operácií balíka a rozbalenia automaticky skonvertujú medzi XML a YAML. Môžete ich vytvoriť ako súbory YAML; Nástroj spracuje konverziu.
Odkladacie priestory s viacerými riešeniami
Jeden koreň odkladacieho priestoru môže obsahovať viacero riešení. Všetky riešenia zdieľajú rovnaké priečinky súčastí. solutioncomponents.yml v každom riešení kontroluje, ktoré cesty súčastí patria do daného riešenia.
Príklad štruktúry s dvoma riešeniami:
<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/
Balenie konkrétneho riešenia z priečinka s viacerými riešeniami
Použitie SolutionPackager.exe:
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Použitie pac solution pack (iba priečinky s jedným riešením – v prípade viacerých riešení použite SolutionPackager.exe priamo s /SolutionName):
pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo
Poznámka
Pri používaní natívnej integrácie dataverse Git s väzbou prostredia majú všetky riešenia v prostredí jednu koreň odkladacieho priestoru pomocou rozloženia s viacerými riešeniami. Pri použití väzby riešenia je možné naviazať každé riešenie do samostatného priečinka.
Práca s priečinkami formátu YAML
Zbalenie priečinka YAML do súboru .zip
# 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
Získajte úplný priečinok YAML z lokality Dataverse.
Odporúčaný spôsob, ako získať úplný a zbaliteľný priečinok YAML, je použiť :pac solution clone
pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo
Týmto sa riešenie extrahuje do formátu YAML vrátane všetkých zdrojových súborov súčastí. Prípadne použite natívnu integráciu Git na potvrdenie zo Power Apps – potvrdené súbory sú vo formáte YAML a sú úplne zbaliteľné.
Overenie priečinka pred balením
Skontrolujte, či solutions/<name>/ priečinok existuje a či všetky cesty v solutioncomponents.yml vyriešiť skutočné súbory. Všetky chýbajúce cesty majú za následok upozornenia počas používania balíka a tieto súčasti sa vynechávajú.
Vzťah k integrácii Dataverse Git
Formát ovládacieho prvku zdroja YAML je kanonický formát, ktorý používa integrácia Dataverse Git. Keď tvorcovia potvrdiť riešenia z Power Apps, súbory napísané do Azure DevOps používať tento formát. Vývojári s prvým kódom môžu pracovať s rovnakým odkladacím priestorom pomocou nástrojov CLI, ktoré sú popísané tu.
Informácie o pripájaní prostredí k systému Git nájdete v téme Nastavenie integrácie Dataverse Git.