Referenční dokumentace k formátu správy zdrojového kódu YAML řešení

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 clone nebo pac 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.