Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek je referenční informace o formátu správy zdrojového kódu založeného na YAML, který se používá v těchto případech:
- Potvrďte řešení pomocí nativní integrace Gitu Dataverse v Power Apps.
- Extrahujte řešení pomocí
pac solution clonenebopac solution sync. - Ručně spusťte SolutionPackager pro složku, která obsahuje soubory manifestu YAML.
Formát YAML se liší od klasického rozložení XML. Pochopení struktury je důležité, když chcete ručně zabalit složku YAML zpět do .zip souboru, který dataverse může importovat.
Important
Podpora formátu správy zdrojového kódu YAML v rozhraní příkazového řádku pac vyžaduje Microsoft. PowerApps.CLI verze 2.4.1 nebo novější Stáhněte si nejnovější verzi z NuGet nebo aktualizujte prostřednictvím pac install latest. SolutionPackager.exe, který se dodává s balíčkem NuGet, podporuje formát YAML ze stejné verze.
Přehled struktury složek
Kořenový adresář úložiště formátu YAML obsahuje následující adresáře nejvyšší úrovně:
<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]/
Vyžadují se solutions/ adresáře a publishers/ adresáře. Všechny složky součástí v kořenovém adresáři jsou volitelné a závisí na tom, co řešení obsahuje.
Important
Všechny soubory manifestu YAML (solution.yml, publisher.ymla tak dále) musí být umístěny do příslušných podadresářů (solutions/<name>/, publishers/<name>/). Umístění do kořenového adresáře úložiště brání detekci formátu a způsobí, že se nástroj SolutionPackager vrátí do formátu XML – což způsobí zavádějící chybu týkající se chybějící Customizations.xmlchyby . Další informace: Řešení potíží s nástrojem SolutionPackager
Automatické zjišťování formátu
SolutionPackager (a pac solution pack) automaticky rozpozná formát následujícím způsobem:
| Podmínka | Zjištěný formát | Chování |
|---|---|---|
solutions/*/solution.yml found — jedno řešení |
YAML | Název řešení odvozený z názvu podsložky |
solutions/*/solution.yml found — více řešení |
YAML |
/SolutionName Argument povinný k určení, které řešení se má zabalit. |
Žádný solutions/ podadresář není přítomen. |
XML (starší verze) |
Other\Solution.xml Očekává aOther\Customizations.xml |
Soubory manifestu
solution.yml
Nachází se na adrese solutions/<SolutionUniqueName>/solution.yml. Obsahuje metadata řešení nejvyšší úrovně – ekvivalent solution.xml YAML ve formátu XML.
Klíčová pole zahrnují jedinečný název, verzi, popisný název, popis a odkaz na vydavatele.
solutioncomponents.yml
Nachází se na adrese solutions/<SolutionUniqueName>/solutioncomponents.yml. Vypíše relativní cesty ke všem souborům součástí zahrnutým v tomto řešení. SolutionPackager přečte tento soubor během balíčku za účelem vyhledání zdrojů komponent.
Příklad výňatek:
- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher
rootcomponents.yml
Nachází se na adrese solutions/<SolutionUniqueName>/rootcomponents.yml. Uvádí komponenty kořenové úrovně (obvykle tabulky a další objekty nejvyšší úrovně), které patří do tohoto řešení.
Note
Pokud je komponenta deklarována, rootcomponents.yml ale její zdrojové soubory chybí ve složce (například soubor aplikace .msapp plátna v části canvasapps/<name>/), SolutionPackager vygeneruje upozornění a vynechá tuto komponentu z zabaleného .zipsouboru . Operace balíčku se stále úspěšně dokončí s ukončovacím kódem 0.
Úspěch balíčku nezaručuje úspěch importu. Pokud solutioncomponents.yml vynechá požadované cesty závislostí , jako jsou složky nadřazených entit nebo definice relací v rámci entityrelationships/ , balíčky řešení bez chyby, ale při importu selže se zprávou typu : "Atributy chybí přidružené definice relací". Vždy zajistěte, aby solutioncomponents.yml zahrnovaly všechny závislé entity a relace, nejen ty vlastněné řešením.
missingdependencies.yml
Nachází se na adrese solutions/<SolutionUniqueName>/missingdependencies.yml. Zaznamenává všechny závislosti řešení, které nebyly k dispozici při posledním exportu řešení. Slouží k informativním účelům a k ověření úplnosti při importu.
publisher.yml
Nachází se na adrese publishers/<PublisherUniqueName>/publisher.yml. Obsahuje definici vydavatele – jedinečný název, zobrazovaný název, předponu vlastního nastavení a předponu hodnoty možnosti.
Minimální požadovaná 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 typu komponenty
Následující tabulka uvádí, jak se jednotlivé typy součástí zpracovávají ve formátu YAML.
| Typ komponenty | Ve formátu YAML | Poznámky |
|---|---|---|
| Entity (tabulky), atributy, formuláře, zobrazení | Soubory YAML | Uložená jako jednotlivé soubory YAML na dílčí podsložku |
| Pracovní postupy (klasické) | Soubory YAML | Pod workflows/ |
| Moderní toky (Power Automate toky cloudu) | — pouze formát YAML | V modernflows/části ; není podporováno ve formátu XML. |
| Aplikace Canvas | — pouze formát YAML |
.msapp binární soubor canvasapps/<name>/v části ; není podporován ve formátu XML |
| Definice proměnných prostředí | Soubory XML | Jednotlivé .xml soubory v části environmentvariabledefinitions/ |
| Hodnoty proměnných prostředí | – Soubor JSON | Uloženo jako environment_variable_values.json |
| Vlastní konektory | ✓ | Pod connectors/ |
| Sestavení modulů plug-in | ✓ | Plně kvalifikované názvy typů se ve výchozím nastavení znovu namapují (/remapPluginTypeNames) |
| Webové prostředky | ✓ | Pod webresources/ |
| Role zabezpečení | ✓ | Uloženo interně jako XML; filtrováno podle řešení |
| Sady možností (globální) | ✓ | Uloženo jako XML; filtrováno podle řešení |
| Dashboards | ✓ | Uloženo jako XML; filtrováno podle řešení |
| Mapy webu | ✓ | Uloženo jako XML; filtrováno podle řešení |
| Přizpůsobení pásu karet | ✓ | Uloženo jako XML; filtrováno podle řešení |
| Vztahy mezi entitou | ✓ | Pod entityrelationships/ |
Note
Komponenty uložené jako XML interně se automaticky převedou mezi XML a YAML během operací balení a rozbalení. Můžete je vytvořit jako soubory YAML; nástroj zpracovává převod.
Úložiště s více řešeními
Jeden kořenový adresář úložiště může obsahovat více řešení. Všechna řešení sdílejí stejné složky součástí; solutioncomponents.yml v každém řešení určuje, které cesty komponent patří k danému řešení.
Příklad struktury se dvěma řešeními:
<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/
Balení konkrétního řešení ze složky s více řešeními
Použití SolutionPackager.exe:
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Použití pac solution pack (pouze složky s jedním řešením – pro více řešení použijte SolutionPackager.exe přímo s /SolutionName):
pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo
Note
Při použití nativní integrace Gitu Dataverse s vazbou prostředí sdílejí všechna řešení v prostředí jeden kořenový adresář úložiště pomocí rozložení s více řešeními. Při použití vazby řešení může být každé řešení vázané na samostatnou složku.
Práce se složkami formátu YAML
Zabalení složky YAML do souboru .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ískání úplné složky YAML z Dataverse
Doporučeným způsobem, jak získat kompletní, zabalenou složku YAML, je použít pac solution clone:
pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo
Tím se řešení extrahuje do formátu YAML, včetně všech zdrojových souborů součástí. Případně můžete použít nativní integraci Gitu k potvrzení z Power Apps – potvrzené soubory jsou ve formátu YAML a jsou plně zabalitelné.
Před balením ověřte složku.
Zkontrolujte, jestli solutions/<name>/ složka existuje a jestli se všechny cesty solutioncomponents.yml přeloží na skutečné soubory. Všechny chybějící cesty způsobí, že během balení dojde k upozorněním a tyto komponenty se vynechá.
Vztah k integraci Gitu s Dataverse
Formát správy zdrojového kódu YAML je kanonický formát používaný integrací Dataverse Gitu. Když tvůrci potvrdí řešení z Power Apps, soubory zapsané do Azure DevOps tento formát používají. Vývojáři používající kód můžou pracovat se stejným úložištěm pomocí zde popsaných nástrojů rozhraní příkazového řádku.
Informace o připojování prostředí k Gitu najdete v tématu Nastavení integrace Gitu pro Dataverse.