יצירת חבילות עבור הכלי Package Deployer
Package Deployer מאפשר למנהלי מערכת לפרוס חבילות במופעי Microsoft Dataverse. חבילה יכולה להיות מורכבת מפעולה אחת או מכל הפעולות הבאות:
- קובצי פתרון, אחד או יותר, של Dataverse.
- קבצים שטוחים או קובץ נתוני תצורה מיוצא מהכלי 'מעבר תצורה'. לקבלת מידע נוסף על הכלי, ראה העברת נתוני התצורה בין מופעים וארגונים באמצעות הכלי 'מעבר תצורה'.
- קוד מותאם אישית שניתן להפעיל לפני, במהלך או אחרי פריסת החבילה במופע של Dataverse.
- תוכן HTML ספציפי לחבילה שניתן להציג בהתחלה ובסוף של תהליך הפריסה. הדבר יכול להיות שימושי כדי לספק תיאור של פתרונות וקבצים הנפרסים בחבילה.
תבנית Visual Studio גירסת 2015 ואילך (זמינה להורדה) משמשת ליצירת חבילות. לאחר יצירת חבילה, השתמש בכלי Package Deployer כדי לפרוס את החבילה במופע של Dataverse.
דרישות מוקדמות
- ודא שכל הפתרונות והקבצים שברצונך לכלול בחבילה מוכנים.
- Microsoft .NET Framework 4.6.2
- Visual Studio גירסת 2015 ואילך
- NuGet Package Manager for Visual Studio 2015
- Microsoft Dynamics CRM SDK Templates for Visual Studio שמכיל את תבנית החבילה. כדי להשיג אותו, הורד את Microsoft Dynamics CRM SDK Templates ולחץ פעמיים על הקובץ
CRMSDKTemplates.vsixכדי להתקין את התבנית ב- Visual Studio.
יצירת חבילה
בצע את חמשת השלבים הבאים כדי ליצור חבילה:
- שלב 1: יצירת פרוייקט באמצעות התבנית
- שלב 2: הוספת הקבצים שלך לפרוייקט
- שלב 3: עדכון קבצי ה- HTML
- שלב 4: קביעת ערכי התצורה עבור החבילה
- שלב 5: הגדרת קוד מותאם אישית עבור החבילה
שלב 1: יצירת פרוייקט באמצעות התבנית
הפעל את Visual Studio, וצור פרוייקט חדש.
בתיבת הדו-שיח פרויקט חדש:
- ברשימת התבניות המותקנות, הרחב את Visual C# ובחר Dynamics 365 SDK Templates.
- ודא שהאפשרות .NET Framework 4.6.2 נבחרה.
- בחר Dynamics 365 Package.
- ציין את השם והמיקום של הפרוייקט ולחץ על אישור.

שלב 2: הוספת הקבצים שלך לפרוייקט
- בחלונית סייר הפתרון, הוסף את הפתרונות והקבצים שלך בתיקיה PkgFolder.
- עבור כל קובץ שתוסיף בתיקיה PkgFolder, בחלונית מאפיינים, הגדר את הערך העתק לספריית פלט ל העתק תמיד. פעולה זו מבטיחה שהקובץ יהיה זמין בחבילה שנוצרה.
שלב 3: עדכון קבצי ה- HTML: אנגלית ושפות אחרות
בחלונית 'סייר הפתרון', הרחב את PkgFolder > תוכן > en-us. תמצא שתי תיקיות:
EndHTMLו-WelcomeHTML. תיקיות אלה מכילות את קבצי ה- HTML והקבצים המשויכים שמאפשרים לך להציג מידע בסוף ובהתחלה של תהליך פריסת החבילה. ערוך את הקבצים בתיקיית ה- HTML של תיקיות אלה כדי להוסיף מידע לחבילה שלך.ניתן להוסיף את קבצי ה- HTML בחבילה גם בשפות אחרות, כך שהתוכן ב- HTML יופיע בשפה המבוססת על הגדרות האזור של מחשב המשתמש. לשם כך:
- צור עותק של התיקיה en-us תחת PkgFolder > תוכן.
- שנה את שם התיקיה שהועתקה לשפה המתאימה. לדוגמה, עבור עברית, שנה את שמה ל- he-IL.
- שנה את תוכן קבצי ה- HTML כדי להוסיף תוכן בעברית.
שלב 4: קביעת ערכי התצורה עבור החבילה
הגדר את תצורת החבילה על-ידי הוספת מידע לגבי החבילה בקובץ ImportConfig.xml שזמין ב- PkgFolder. לחץ פעמיים על הקובץ כדי לפתוח אותו לעריכה. הרשימה הבאה מספקת מידע על כל פרמטר וצומת בקובץ התצורה.
installsampledata
Trueאוfalse. אםtrue, מתקין נתונים לדוגמה במופע של Dataverse. אלו הם אותם נתונים לדוגמה שניתן להתקין דרך האזור הגדרות > ניהול נתונים ב- Dataverse.waitforsampledatatoinstall
True או false. אם true ואם גם installsampledata מוגדר ל- true, ממתין להתקנת הנתונים לדוגמה לפני פריסת החבילה.הערה
הקפד להגדיר את installsampledata ל- true אם אתה מגדיר את
waitforsampledatatoinstallל- true.agentdesktopzipfile
שם הקובץ של קובץ ה- Zip לפירוק. אם תציין כאן שם קובץ .zip, תהליך פריסת החבילה יכלול מסך שיבקש ממך לבחור מיקום לפירוק תוכן הקובץ.הוא משמש בדרך כלל ליצירת חבילות עבור Unified Service Desk for Dynamics 365. לקבלת מידע על Unified Service Desk, ראה מדריך הניהול עבור Unified Service Desk 3.0.
agentdesktopexename
שם קובץ .exe או .msi בקובץ ה- zip או כתובת URL שתופעל בסוף תהליך הפריסה.הוא משמש בדרך כלל ליצירת חבילות עבור Unified Service Desk.
crmmigdataimportfile
שם הקובץ של קובץ נתוני התצורה (.zip) המוגדר כברירת מחדל שמיוצא באמצעות הכלי 'מעבר תצורה'.ניתן גם לייבא גירסה המותאמת לשפות אחרות של קובץ נתוני התצורה על בסיס מזהה האזור (LCID) שצוין באמצעות הגדרות זמן הריצה החדשות בעת הפעלת Package Deployer. השתמש בצומת
<cmtdatafile>(יוסבר בהמשך) כדי לציין את הגירסאות המותאמות לשפות אחרות של קובץ נתוני התצורה בחבילה. לאחר מכן, השתמש בפעולת השירותOverrideConfigurationDataFileLanguage(תוסבר בהמשך) כדי לציין את הלוגיקה לייבוא קובץ נתוני התצורה על בסיס מזהה האזור שצוין באמצעות הגדרות זמן הריצה. לא ניתן לייבא יותר מקובץ אחד של נתוני תצורה באמצעות חבילה בכל פעם.עבור Dataverse (מקומי), אם קובץ נתוני התצורה מכיל פרטי משתמש, וגם מופע המקור וגם מופע היעד של Dataverse נמצאים באותו תחום של Active Directory, המערכת תייבא את פרטי המשתמש למופע היעד של Dataverse. כדי לייבא פרטי משתמש למופע של Dataverse (מקומי) בתחום אחר, עליך לכלול את קובץ מפת המשתמש (.xml) שנוצר באמצעות הכלי 'מעבר תצורה' בפרוייקט שלך, ולציין אותו יחד עם קובץ נתוני התצורה באמצעות התכונה
usermapfilenameבצומת<cmtdatafile>שיוסבר בהמשך. לא ניתן לייבא פרטי משתמש למופעים של Dataverse.
הצומת<solutions>
מכיל מערך של צמתי<configsolutionfile>שמתארים את הפתרונות לייבוא. סדר הפתרונות תחת צומת זה מציין את סדר הייבוא של הפתרונות במופע היעד של Dataverse.הצומת
<configsolutionfile>
השתמש בצומת זה תחת הצומת<solutions>כדי לציין את הפתרונות הבודדים ואת המידע הבא עבור כל פתרון לייבוא:solutionpackagefilename: ציין את שם קובץ .zip של הפתרון שלך. נדרש.overwriteunmanagedcustomizations: ציין אם יש להחליף התאמות אישיות לא מנוהלות בעת ייבוא פתרון שכבר קיים במופע היעד של Dynamics 365. תכונה זו אופציונלית. אם לא תציין תכונה זו, ההתאמות האישיות הלא מנוהלות בפתרון הקיים יישמרו כברירת מחדל במופע היעד של Dynamics 365.publishworkflowsandactivateplugins: ציין אם יש לפרסם זרימות עבודה ולהפעיל יישומי Plug-in במופע היעד Dynamics 365 לאחר ייבוא הפתרון. תכונה זו אופציונלית. אם לא תציין תכונה זו, זרימות העבודה יפורסמו ויישומי ה- Plug-in יופעלו כברירת מחדל לאחר ייבוא הפתרון במופע היעד של Dynamics 365.ניתן להוסיף שמות של קבצי פתרונות מרובים בחבילה על-ידי הוספת צמתי
<configsolutionfile>מרובים. לדוגמה, אם ברצונך לייבא שלושה קבצי פתרונות, הוסף אותם באופן הבא:
<solutions> <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip" overwriteunmanagedcustomizations="false" publishworkflowsandactivateplugins="true"/> <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip" overwriteunmanagedcustomizations="false" publishworkflowsandactivateplugins="true"/> <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" /> </solutions>הצומת
<filestoimport>
מכיל מערך של צמתי<configimportfile>ו-<zipimportdetails>המשמשים לתיאור קבצים וקבצי zip בודדים שיש לייבא, בהתאמה.הצומת
<configimportfile>
השתמש בצומת זה תחת הצומת<configimportfile>כדי לתאר קובץ שיש לייבא אל Dataverse. ניתן להוסיף קבצים מרובים בחבילה על-ידי הוספת צמתי<configimportfile>מרובים.<filestoimport> <configimportfile filename="File.csv" filetype="CSV" associatedmap="FileMap" importtoentity="FileEntity" datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true" isrecordownerateam="false" owneruser="" waitforimporttocomplete="true" /> <configimportfile filename="File.zip" filetype="ZIP" associatedmap="FileMapName" importtoentity="FileEntity" datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true" isrecordownerateam="false" owneruser="" waitforimporttocomplete="true"/> </filestoimport>הוא כולל את התכונות הבאות:
תכונה תיאור filenameשם הקובץ שמכיל את נתוני הייבוא. אם הקובץ הוא קובץ .zip, חייב להתקיים צומת <zipimportdetails>עם צומת<zipimportdetail>עבור כל קובץ בקובץ ה- .zipfiletypeערך זה יכול להיות csv, xml או zip. associatedmapהשם של מפת נתוני הייבוא של Dataverse שבה יש להשתמש עם קובץ זה. אם הוא ריק, נעשה ניסיון להשתמש בשם של מפת נתוני הייבוא שנקבע על-ידי המערכת עבור קובץ זה. importtoentityהוא יכול להיות שם קובץ .exe בקובץ ה- zip, כתובת URL או קובץ .msi כדי לספק קישור להפעלה בסוף התהליך. datadelimiterשם מפריד הנתונים שבו נעשה שימוש בקובץ הייבוא. הערכים החוקיים הם singlequote או doublequotes. fielddelimiterשם מפריד השדות שבו נעשה שימוש בקובץ הייבוא. הערכים החוקיים הם comma, colon או singlequote. enableduplicatedetectionמציין אם יש להפוך כללי זיהוי כפילויות לזמינים בייבוא נתונים. הערכים החוקיים הם true או false. isfirstrowheaderמשמש לציין שהשורה הראשונה בקובץ הייבוא מכילה את שמות השדות. הערכים החוקיים הם trueאוfalse.isrecordownerateamמציין אם בעלי הרשומה בייבוא צריך להיות צוות. הערכים החוקיים הם trueאוfalse.owneruserמציין את מזהה המשתמש שהרשומות צריכות להיות בבעלותו. ערך ברירת המחדל הוא המשתמש המחובר כעת. waitforimporttocompleteאם true, המערכת ממתינה להשלמת הייבוא לפני שהיא ממשיכה. אםfalse, היא מציבה את המשימות בתור וממשיכה הלאה.הצומת
<zipimportdetails>
צומת זה מכיל מערך של צמתי<zipimportdetail>שמתארים את הקבצים הכלולים בקובץ zip המשמש לייבוא אל Dynamics 365.הצומת
<zipimportdetail>
השתמש בצומת זה תחת הצומת<zipimportdetails>כדי לספק מידע על קובץ בודד בקובץ .zip שצוין בצומת<configimportfile>.<filestoimport> ... ... <zipimportdetails> <zipimportdetail filename="subfile1.csv" filetype="csv" importtoentity="account" /> <zipimportdetail filename="subfile2.csv" filetype="csv" importtoentity="contact" /> </zipimportdetails> </filestoimport>הוא כולל את התכונות הבאות:
תכונה תיאור filenameשם הקובץ שמכיל את נתוני הייבוא. filetypeערך זה יכול להיות csv או xml. importtoentityהוא יכול להיות שם קובץ .exe בקובץ ה- zip, כתובת URL או קובץ .msi כדי לספק קישור להפעלה בסוף התהליך. הצומת
<filesmapstoimport>
צומת זה מכיל מערך של צמתי<configmapimportfile>לייבוא. סדר קבצי המפה בצומת זה מציין את סדר הייבוא שלהם. לקבלת מידע על מפות נתונים, ראה יצירת מפות נתונים לייבוא.הצומת
<configimportmapfile>
השתמש בצומת זה תחת הצומת<filesmapstoimport>כדי לספק מידע על קובץ מפה בודד לייבוא ב- Dataverse.<filesmapstoimport> <configimportmapfile filename="FileMap.xml" /> </filesmapstoimport>הצומת
<cmtdatafiles>
צומת זה מכיל מערך של צמתי<cmtdatafile>שמכילים גירסאות המותאמות לשפות אחרות של קובץ נתוני התצורה לייבוא.הצומת
<cmtdatafile>
השתמש בצומת זה תחת הצומת<cmtdatafiles>כדי לציין את קבצי נתוני התצורה המותאמים לשפות אחרות יחד עם מזהה אזור (נדרש) וקובץ מפת פרטי משתמש (אופציונלי). לדוגמה:<cmtdatafiles> <cmtdatafile filename="data_1033.zip" lcid="1033" usermapfilename="UserMap.xml" /> <cmtdatafile filename="data_1041.zip" lcid="1041" usermapfilename="" /> </cmtdatafiles>תוכל להגדיר לוגיקה מותאמת אישית משלך בפעולת השירות
OverrideConfigurationDataFileLanguage(תוסבר בהמשך) כדי לייבא קובץ נתוני תצורה המותאם לשפות אחרות במקום קובץ ברירת המחדל (שצוין ב- crmmigdataimportfile) על בסיס ערך מזהה האזור (LCID) שצוין באמצעות הגדרות זמן הריצה (יוסבר בהמשך).לחץ על שמור הכל.
להלן תוכן של קובץ
ImportConfig.xmlלדוגמה.<?xml version="1.0" encoding="utf-16"?> <configdatastorage xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" installsampledata="true" waitforsampledatatoinstall="true" agentdesktopzipfile="" agentdesktopexename="" crmmigdataimportfile="data_1033.zip"> <solutions> <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip" overwriteunmanagedcustomizations="false" publishworkflowsandactivateplugins="true"/> <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip" overwriteunmanagedcustomizations="false" publishworkflowsandactivateplugins="true"/> <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" /> </solutions> <filestoimport> <configimportfile filename="SampleOption.csv" filetype="CSV" associatedmap="SampleOption" importtoentity="sample_option" datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true" isrecordownerateam="false" owneruser="" waitforimporttocomplete="false"/> <configimportfile filename="File.zip" filetype="ZIP" associatedmap="FileMapName" importtoentity="FileEntity" datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true" isrecordownerateam="false" owneruser="" waitforimporttocomplete="true"/> <zipimportdetails> <zipimportdetail filename="subfile1.csv" filetype="csv" importtoentity="account" /> <zipimportdetail filename="subfile2.csv" filetype="csv" importtoentity="contact" /> </zipimportdetails> </filestoimport> <filesmapstoimport> <configimportmapfile filename="SampleOption.xml" /> </filesmapstoimport> <cmtdatafiles> <cmtdatafile filename="data_1033.zip" lcid="1033" usermapfilename="UserMap.xml" /> <cmtdatafile filename="data_1041.zip" lcid="1041" usermapfilename="" /> </cmtdatafiles> </configdatastorage>
שלב 5: הגדרת קוד מותאם אישית עבור החבילה
בחלונית 'סייר הפתרון', לחץ פעמיים על הקובץ PackageTemplate.cs בבסיס כדי לערוך אותו.
בקובץ PackageTemplate.cs, ניתן:
להזין קוד מותאם אישית שיבוצע בעת אתחול החבילה בהגדרת פעולת השירות לעקיפה של
InitializeCustomExtension.ניתן להשתמש בפעולת שירות זו כדי לאפשר למשתמשים להשתמש בפרמטרי זמן הריצה בעת הפעלת חבילה. כמפתח, תוכל להוסיף לחבילה שלך תמיכה עבור כל פרמטר זמן ריצה באמצעות המאפיין RuntimeSettings, כל עוד יש לך קוד כדי לעבד אותו על בסיס קלט המשתמש.
למשל, הקוד לדוגמה הבא הופך פרמטר זמן ריצה בשם
SkipChecksלזמין עבור החבילה עם שני ערכים אפשריים: true או false. הקוד לדוגמה בודק אם המשתמש ציין פרמטרי זמן ריצה בעת הפעלת Package Deployer (באמצעות שורת הפקודה או PowerShell), ולאחר מכן מעבד את המידע בהתאם. אם המשתמש לא ציין פרמטר זמן ריצה בעת הפעלת החבילה, ערך המאפיין RuntimeSettings יהיה Null.public override void InitializeCustomExtension() { // Do nothing. // Validate the state of the runtime settings object. if (RuntimeSettings != null) { PackageLog.Log(string.Format("Runtime Settings populated. Count = {0}", RuntimeSettings.Count)); foreach (var setting in RuntimeSettings) { PackageLog.Log(string.Format("Key={0} | Value={1}", setting.Key, setting.Value.ToString())); } // Check to see if skip checks is present. if ( RuntimeSettings.ContainsKey("SkipChecks") ) { bool bSkipChecks = false; if (bool.TryParse((string)RuntimeSettings["SkipChecks"], out bSkipChecks)) OverrideDataImportSafetyChecks = bSkipChecks; } } else PackageLog.Log("Runtime Settings not populated"); }כך מתאפשר למנהל המערכת להשתמש בשורת הפקודה או ב- cmdlet Import-CrmPackage כדי לציין אם יש לדלג על בדיקות הבטיחות בעת הפעלת הכלי Package Deployer כדי לייבא את החבילה. מידע נוסף: פריסת חבילות באמצעות Package Deployer ו- Windows PowerShell.
להזין קוד מותאם אישית שיבוצע לפני ייבוא הפתרונות בהגדרת פעולת השירות לעקיפה של
PreSolutionImportכדי לציין אם יש לשמור או להחליף התאמות אישיות בעת עדכון הפתרון שצוין במופע יעד של Dataverse, ואם יש להפעיל באופן אוטומטי יישומי Plug-in וזרימות עבודה.להשתמש בהגדרת פעולת השירות לעקיפה של
RunSolutionUpgradeMigrationStepכדי לבצע שינוי נתונים או שדרוג בין שתי גרסאות של פתרון. המערכת מבצעת קריאה לפעולת שירות זו רק אם הפתרון שאתה מייבא כבר קיים במופע יעד של Dataverse.פונקציה זו מצפה לפרמטרים הבאים:
פרמטר תיאור solutionNameשם הפתרון oldVersionמספר הגירסה של הפתרון הישן newVersionמספר הגירסה של הפתרון החדש oldSolutionIdה- GUID של הפתרון הישן newSolutionIdה- GUID של הפתרון החדש. להזין קוד מותאם אישית שיבוצע לפני השלמת ייבוא הפתרון בהגדרת העקיפה של פעולת השירות
BeforeImportStage. הנתונים לדוגמה וכמה קבצים שטוחים עבור הפתרונות שצוינו בקובץImportConfig.xmlמיובאים לפני השלמת ייבוא הפתרון.לעקוף את השפה שנבחרה כעת עבור ייבוא נתוני התצורה באמצעות הגדרת פעולת השירות לעקיפה של
OverrideConfigurationDataFileLanguage. אם מזהה האזור (LCID) שצוין של השפה שצוינה לא נמצא ברשימת השפות הזמינות בחבילה, המערכת מייבאת את קובץ הנתונים המוגדר כברירת מחדל.עליך לציין את השפות הזמינות עבור נתוני התצורה בצומת
<cmtdatafiles>בקובץImportConfig.xml. קובץ הייבוא של נתוני התצורה המוגדר כברירת מחדל מצוין בתכונהcrmmigdataimportfileבקובץImportConfig.xml.דילוג על בדיקות נתונים (OverrideDataImportSafetyChecks = true) יכול להיות שימושי כאן אם אתה בטוח שמופע היעד של Dataverse אינו מכיל נתונים.
להזין קוד מותאם אישית שיבוצע אחרי השלמת הייבוא בהגדרת העקיפה של פעולת השירות
AfterPrimaryImport. שאר הקבצים השטוחים שלא יובאו קודם לכן, לפני תחילת ייבוא הפתרון, מיובאים כעת.לשנות את שם ברירת המחדל של תיקיית החבילה שלך מ- PkgFolder לשם החבילה הרצוי. לשם כך, שנה את שם התיקיה
PkgFolderבחלונית סייר הפתרון ולאחר מכן ערוך את ערך ההחזרה תחת המאפייןGetImportPackageDataFolderName.public override string GetImportPackageDataFolderName { get { // WARNING this value directly correlates to the folder name in the Solution Explorer where the ImportConfig.xml and sub content is located. // Changing this name requires that you also change the correlating name in the Solution Explorer return "PkgFolder"; } }לשנות את שם החבילה על-ידי עריכת ערך ההחזרה תחת המאפיין
GetNameOfImport.public override string GetNameOfImport(bool plural) { return "Package Short Name"; }זהו שם החבילה שיופיע בעמוד בחירת החבילה באשף Dynamics 365 Package Deployer.
לשנות את תיאור החבילה על-ידי עריכת ערך ההחזרה תחת המאפיין
GetImportPackageDescriptionText.public override string GetImportPackageDescriptionText { get { return "Package Description"; } }זהו תיאור החבילה שיופיע לצד שם החבילה בעמוד בחירת החבילה באשף Dynamics 365 Package Deployer.
לשנות את השם הארוך של החבילה על-ידי עריכת ערך ההחזרה תחת המאפיין
GetLongNameOfImport.public override string GetLongNameOfImport { get { return "Package Long Name"; } }השם הארוך של החבילה מופיע בעמוד הבא לאחר בחירת החבילה להתקנה.
בנוסף, הפונקציה והמשתנים הבאים זמינים עבור החבילה:
שם סוג תיאור CreateProgressItem(String) פונקציה משמש ליצירת פריט התקדמות חדש בממשק המשתמש (UI). RaiseUpdateEvent(String, ProgressPanelItemStatus) Function משמש לעדכון ההתקדמות שנוצרה על-ידי הקריאה אל CreateProgressItem(String).
ProgressPanelItemStatus הוא Enum עם הערכים הבאים:
פועל = 0
הושלם = 1
נכשל = 2
אזהרה = 3
לא ידוע = 4RaiseFailEvent(String, Exception) Function משמש להכשלת ייבוא המצב הנוכחי עם הודעת חריגה. IsRoleAssoicatedWithTeam(Guid, Guid) Function משמש כדי לקבוע אם תפקיד כלשהו משויך לצוות שצוין. IsWorkflowActive(Guid) Function משמש כדי לקבוע אם זרימת עבודה שצוינה פעילה. PackageLog מצביע מחלקה זהו מצביע לממשק הרישום שאותחל עבור החבילה. ממשק זה משמש את החבילה לרישום הודעות וחריגות בקובץ יומן הרישום של החבילה. RootControlDispatcher מאפיין זהו ממשק משגר שבו נעשה שימוש כדי לאפשר לפקד שלך לעבד ממשק משתמש משלו במהלך פריסת החבילה. השתמש בממשק זה כדי לעטוף פקודות או רכיבים של ממשק המשתמש. חשוב לאתר ערכי Null במשתנה זה לפני השימוש בו מכיוון שייתכן שהוא הוגדר לערך. CrmSvc מאפיין זהו מצביע למחלקה של CrmServiceClient שמאפשר לחבילה להפנות אל Dynamics 365 מתוך החבילה. השתמש בו כדי לבצע פעולות שירות של SDK ופעולות אחרות בפעולות השירות שעקפת. DataImportBypass מאפיין השתמש בו כדי לציין אם Dynamics 365 Package Deployer צריך לדלג על כל פעולות ייבוא הנתונים, כגון ייבוא נתונים לדוגמה של Dataverse, נתוני קבצים שטוחים ונתונים שיוצאו מהכלי 'מעבר תצורה'. ציין true או false. ברירת המחדל היא false.OverrideDataImportSafetyChecks מאפיין השתמש בו כדי לציין אם Dynamics 365 Package Deployer צריך לעקוף חלק מבדיקות הבטיחות שלו, לשיפור ביצועי הייבוא. ציין trueאוfalse. ברירת המחדל היאfalse.
עליך להגדיר אותו ל-trueרק אם מופע היעד של Dataverse אינו מכיל נתונים.שמור את הפרוייקט שלך ולאחר מכן בנה אותו (בנה > בנה פתרון) כדי ליצור את החבילה. החבילה שלך היא הקבצים הבאים תחת התיקיה *<Project>* \Bin\Debug
התיקיה <PackageName>: שם התיקיה זהה לשם ששינית עבור שם תיקיית החבילה שלך בשלב 2.ז בסעיף זה (שלב 5: הגדרת קוד מותאם אישית עבור החבילה). תיקיה זו מכילה את כל הפתרונות, נתוני התצורה, הקבצים השטוחים והתוכן עבור החבילה.
<PackageName>.dll: ההרכבה מכילה את הקוד המותאם אישית עבור החבילה שלך. כברירת מחדל, שם ההרכבה זהה לשם פרויקט ה- Visual Studio שלך.
השלב הבא הוא לפרוס את החבילה שלך.
פריסת חבילה
לאחר יצירת חבילה, תוכל לפרוס אותה במופע של Dataverse באמצעות הכלי Package Deployer או באמצעות Windows PowerShell.
הכלי Package Deployer מופץ כחלק מהחבילה Microsoft.CrmSdk.XrmTooling.PackageDeployment של NuGet. כדי להוריד את הכלי Package Deployer, ראה הורדת כלים מ- NuGet.
לקבלת מידע מפורט, ראה פריסת חבילות באמצעות Package Deployer ו- Windows PowerShell.
שיטות עבודה מומלצות ליצירה ולפריסה של חבילות
בעת יצירת חבילה, המפתחים חייבים לוודא שההרכבות של החבילה חתומות.
בעת פריסת החבילות, מנהלי המערכת של Dataverse חייבים:
- להתעקש על הרכבת חבילה חתומה כך שתוכל לעקוב אחר ההרכבה בחזרה למקור שלה.
- לבדוק את החבילה במופע קדם-ייצור (רצוי תמונת ראי של מופע הייצור) לפני הפעלתה במופע ייצור.
- לגבות את מופע הייצור לפני פריסת החבילה.