הערה
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות להיכנס או לשנות מדריכי כתובות.
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות לשנות מדריכי כתובות.
מאמר זה הוא חומר עזר עבור תבנית בקרת המקור המבוססת על YAML המשמשת כאשר אתה:
- בצע פתרונות באמצעות שילוב Dataverse Git מקורי ב- Power Apps.
- חלץ פתרונות באמצעות
pac solution cloneאוpac solution sync. - הפעל את SolutionPackager באופן ידני מול תיקיה המכילה קבצי מניפסט של YAML.
תבנית YAML שונה מהפריסה הקלאסית של XML. הבנת המבנה חשובה כאשר ברצונך לארוז באופן ידני תיקיית YAML בחזרה לקובץ .zip ש- Dataverse יכול לייבא.
חשוב
תמיכה בתבנית בקרת מקור של YAML ב- pac CLI דורשת Microsoft. PowerApps.CLI גירסה 2.4.1 ואילך. הורד את הגירסה העדכנית ביותר מ- NuGet או עדכן באמצעות pac install latest. SolutionPackager.exe, אשר נשלחת עם חבילת NuGet, תומכת בתבנית YAML מאותה גירסה.
מבט כולל על מבנה התיקיות
בסיס מאגר בתבנית YAML מכיל את הספריות ברמה העליונה הבאות:
<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]/
הספריות solutions/publishers/ והספריות נדרשות. כל תיקיות הרכיבים בבסיס הן אופציונליות, והן תלויות במה שהפתרון מכיל.
חשוב
יש למקם את כל קבצי המניפסט של YAML (solution.yml, publisher.ymlוכן הלאה) תחת ספריות המשנה המתאימות שלהם (solutions/<name>/, publishers/<name>/). הצבתם בבסיס המאגר מונעת זיהוי תבניות וגורמת לכלי SolutionPackager לחזור לתבנית XML – המייצרת שגיאה מטעה לגבי פריט חסר Customizations.xml. מידע נוסף: פתרון בעיות בכלי SolutionPackager
עיצוב זיהוי אוטומטי
SolutionPackager (ו- pac solution pack) מזהה באופן אוטומטי את התבנית באופן הבא:
| תנאי | תבנית שזוהתה | התנהגות |
|---|---|---|
solutions/*/solution.yml מצא — פתרון אחד |
יאמאל (YAML) | שם הפתרון נגזר משם תיקיית המשנה |
solutions/*/solution.yml נמצאו – פתרונות מרובים |
יאמאל (YAML) |
/SolutionName ארגומנט נדרש כדי לציין איזה פתרון יש לארוז |
אין ספריית משנה solutions/ קיימת |
XML (דור קודם) |
Other\Solution.xml מצפה וOther\Customizations.xml |
קבצי מניפסט
solution.yml
ממוקם בכתובת solutions/<SolutionUniqueName>/solution.yml. מכיל מטה-נתונים של פתרון ברמה העליונה - המקבילה solution.xml של YAML בתבנית XML.
שדות מפתח כוללים את השם, הגירסה, השם הידידותי, התיאור וההפניה הייחודיים של הפתרון למפרסם.
solutioncomponents.yml
ממוקם בכתובת solutions/<SolutionUniqueName>/solutioncomponents.yml. פירוט נתיבים יחסיים לכל קבצי הרכיבים הכלולים בפתרון זה. SolutionPackager מקריא קובץ זה במהלך ערכות לאיתור מקורות רכיבים.
קטע לדוגמה:
- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher
rootcomponents.yml
ממוקם בכתובת solutions/<SolutionUniqueName>/rootcomponents.yml. פירוט הרכיבים ברמת הבסיס (בדרך כלל טבלאות ואובייקטים אחרים ברמה העליונה) השייכים לפתרון זה.
הערה
אם רכיב rootcomponents.yml מסוים מוצהר ב- אך קבצי המקור שלו חסרים מהתיקיה (לדוגמה, .msappcanvasapps/<name>/קובץ יישום בד ציור תחת ), SolutionPackager .zipפולט אזהרה ומשממיט רכיב זה מהאריזה . פעולת ה- Pack עדיין הושלמה בהצלחה עם קוד יציאה 0.
הצלחת ערכות אינה מבטיחה הצלחה ייבוא.
solutioncomponents.yml אם מושמט נתיבי יחסי תלות נדרשים - entityrelationships/ כגון תיקיות ישויות אב או הגדרות קשר גומלין תחת - ערכות הפתרונות ללא שגיאה, אך נכשל בייבוא עם הודעה כגון: "חסרות הגדרות קשרי גומלין משויכת לתכונות". הקפד תמיד solutioncomponents.yml ל כולל את כל הישויות ו קשרי הגומלין התלויים, ולא רק את הישויות שבבעלות הפתרון.
missingdependencies.yml
ממוקם בכתובת solutions/<SolutionUniqueName>/missingdependencies.yml. מתעד יחסי תלות של פתרון שלא היו קיימים כאשר הפתרון יוצא לאחרונה. משמש למטרות מידע ולאימות ההשלמה בעת הייבוא.
publisher.yml
ממוקם בכתובת publishers/<PublisherUniqueName>/publisher.yml. מכיל את הגדרת המפרסם - שם ייחודי, שם תצוגה, קידומת התאמה אישית וקידומת ערך של אפשרות.
מבנה נדרש מינימלי:
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:
תמיכה בסוג רכיב
הטבלה הבאה מפרטת כיצד כל סוג רכיב מטופל בתבנית YAML.
| סוג רכיב | בתבנית YAML | הערות |
|---|---|---|
| ישויות (טבלאות), תכונות, טפסים, תצוגות | קבצי YAML | מאוחסן כקבצי YAML בודדים לכל רכיב משנה |
| זרימות עבודה (קלאסי) | קבצי YAML | תחת workflows/ |
| זרימות מודרניות (Power Automate ענן) | ₪ — תבנית YAML בלבד | תחת modernflows/; אינו נתמך בתבנית XML |
| יישומים מבוססי קנבס | ₪ — תבנית YAML בלבד |
.msapp בינארי תחת canvasapps/<name>/; אינו נתמך בתבנית XML |
| הגדרות משתנה סביבה | קבצי XML של תבניות | קבצים .xml בודדים תחת environmentvariabledefinitions/ |
| ערכי משתנה סביבה | - קובץ JSON | מאוחסן כ environment_variable_values.json |
| מחברים מותאמים אישית | ✓ | תחת connectors/ |
| הרכבות תוסף | ✓ | שמות סוגים המלאים ממופים מחדש כברירת מחדל (/remapPluginTypeNames) |
| משאבי אינטרנט | ✓ | תחת webresources/ |
| תפקידי אבטחה | ✓ | מאוחסן כ- XML באופן פנימי; מסונן לכל פתרון |
| ערכות אפשרויות (כללי) | ✓ | מאוחסן כ- XML; מסונן לכל פתרון |
| לוחות מחוונים | ✓ | מאוחסן כ- XML; מסונן לכל פתרון |
| מפות אתר | ✓ | מאוחסן כ- XML; מסונן לכל פתרון |
| התאמות אישיות של רצועת הכלים | ✓ | מאוחסן כ- XML; מסונן לכל פתרון |
| קשרי גומלין בין ישויות | ✓ | תחת entityrelationships/ |
הערה
רכיבים המאוחסנים כ- XML באופן פנימי עוברים המרה אוטומטית בין XML ל- YAML במהלך פעולות ארוזות ופרקה של אריזה. באפשרותך לערוך אותם כקבצי YAML; הכלי מטפל בהמרה.
מאגרים מרובי פתרונות
בסיס מאגר יחיד יכול להכיל פתרונות מרובים. כל הפתרונות משתפים את אותן תיקיות רכיבים; solutioncomponents.yml בכל פתרון קובע אילו נתיבי רכיבים שייכים לפתרון זה.
מבנה לדוגמה עם שני פתרונות:
<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/
אריזת פתרון ספציפי מתוך תיקיית ריבוי פתרונות
משתמש SolutionPackager.exe:
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
באמצעות pac solution pack (תיקיות של פתרון יחיד בלבד - עבור פתרון מרובה, השתמש ב- SolutionPackager.exe ישירות עם /SolutionName):
pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo
הערה
בעת שימוש בשילוב Dataverse Git מקורי עם איגוד סביבה, כל הפתרונות בסביבה משתפים בסיס מאגר יחיד באמצעות הפריסה מרובת הפתרונות. בעת שימוש באיגוד פתרונות, ניתן לאגד כל פתרון לתיקיה נפרדת.
עבודה עם תיקיות עיצוב YAML
אריזת תיקיית YAML לתוך .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
השגת תיקיית YAML מלאה מ- Dataverse
הדרך המומלצת לקבלת תיקיית YAML מלאה וניתנת לעריכה היא להשתמש ב- pac solution clone:
pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo
פעולה זו מחלץ את הפתרון לתוך תבנית YAML, כולל כל קבצי המקור של הרכיב. לחלופין, השתמש בשילוב Git מקורי כדי לבצע מ- Power Apps — הקבצים המחויבים הם בתבנית YAML וניתן לארוז אותם באופן מלא.
אמת את התיקיה לפני האריזה
ודא שהתיקיה solutions/<name>/ קיימת וש כל הנתיבים בפתרון solutioncomponents.yml לקבצים בפועל. כל הנתיבים החסרים התוצאה היא אזהרות במהלך ערכות ורכיבים אלה מושמטים.
קשרי גומלין לשילוב Dataverse Git
תבנית בקרת המקור YAML היא התבנית ה קנונית המשמשת שילוב Dataverse Git. כאשר יצרנים מבצעים פתרונות Power Apps, הקבצים שנכתבו כדי Azure DevOps בתבנית זו. מפתחים הראשונים בקוד יכולים לעבוד עם אותו מאגר באמצעות כלי ה- CLI המתוארים כאן.
לקבלת מידע על חיבור בסביבות ל- Git, ראה הגדרת שילוב Dataverse Git.