קוד מותאם אישית שניתן להפעיל לפני, במהלך או אחרי פריסת החבילה במופע של Dataverse.
תוכן HTML ספציפי לחבילה שניתן להציג בהתחלה ובסוף של תהליך הפריסה. תוכן יכול לשמש לאספקת תיאור של פתרונות וקבצים הנפרסים בחבילה.
הערה
יש עוד סוג חבילה שנקרא חבילת יישום plug-in. סוג זה של חבילה מיועד למכלולים תלויי יישום plug-in ואין להם שום קשר לחבילות Package Deployer.
דרישות מוקדמות
ודא שכל הפתרונות והקבצים הנוספים שברצונך לכלול בחבילה מוכנים.
Visual Studio 2019 (או מאוחר יותר), או Visual Studio Code
מבט כולל על התהליך
ליצירת חבילת Package Deployer, בצע את השלבים הבאים.
יצירת פרויקט Visual Studio או MSBuild
הוסף פתרונות וקבצים אחרים לפרויקט
עדכון קובצי HTML שסופקו (אופציונלי)
קביעת ערכי התצורה עבור החבילה
הגדרת קוד מותאם אישית עבור החבילה
בנה ופרוס את החבילה
שלבים אלה מתוארים בפירוט במאמר זה.
צור פרויק חבילה
הצעד הראשון הוא ליצור פרויקט Visual Studio או MSBuild עבור החבילה. כדי לעשות זאת, עליך להתקין אחת משתי הרחבות כלים זמינות במחשב הפיתוח שלך. אם אתה משתמש Visual Studio Code, התקן את Microsoft Power Platform CLI . אחרת, אם אתה משתמש ב- Visual Studio 2019 ואילך, התקן את Power Platform Tools עבור Visual Studio.
בחר את הכרטיסייה המתאימה למטה כדי לגלות כיצד ליצור פרויקט באמצעות הרחבת הכלי הרצויה. שני הכלים מוציאים את הפרויקט בפורמט דומה.
בפרויקט שנוצר, מצא את קובץ התצורה ImportConfig.xml בתיקיית PkgAssets ואת הקובץ PackageImportExtension.cs. תשנה את הקבצים האלה כמתואר בהמשך מאמר זה.
ניתן ליצור פרויקט Visual Studio באמצעות תבנית הפתרון Power Platform ובהמשך להוסיף פרויקט חבילה באמצעות התבנית 'פרויקט פריסת חבילה' של Power Platform, או ליצור פרויקט ישירות באמצעות התבנית 'פרויקט פריסת חבילה' של Power Platform.
הערה
אל תבחר את תבנית החבילה של Power Platform. התבנית הזו מיועדת לחבילות של יישומי plug-in.
פרויקט ופתרון Visual Studio המתקבל מכיל את התיקיות והקבצים המוצגים להלן. שם התיקיה 'חבילת פריסה' שימש כאן כדוגמה. התוכן של תיקיית התוכן אינו מוצג כאן לשם קיצור.
בעת שימוש ב- CLI, אתה יכול להוסיף חבילות חיצוניות, פתרונות והפניות לפרויקט החבילה שלך באמצעות אחת מפקודות המשנה הוסף. הזן את pac package help כדי לראות את רשימת פקודות המשנה. בואו נוסיף פתרון לחבילה שלנו.
Bash
> pac package add-solution help
Commands:
Usage: pac package add-solution --path [--import-order] [--skip-validation] [--publish-workflows-activate-plugins] [--overwrite-unmanaged-customizations] [--import-mode] [--missing-dependency-behavior] [--dependency-overrides]
> cd .\DeploymentPackage\
> pac package add-solution --path ..\TestSolution_1_0_0_1_managed.zip
The item was added successfully.
בחלונית סייר הפתרונות, הוסף את הפתרונות ה- Dataverse שלך וקבצים האחרים בתיקיה PkgFolder. קבצי HTML שייכים לתיקיה תוכן. עוד על תוכן HTML זה מאוחר יותר.
עבור כל קובץ שתוסיף בחלונית מאפיינים, הגדר את הערך העתק לספריית פלט להעתק תמיד. הגדרת הערך הזה מבטיחה שהקבצים זמינים בחבילה שנוצרה.
לאחר מכן, עדכן את הקבצים הספציפיים בשפת HTML.
בחלונית סייר הפתרונות, הרחב את PkgFolder>תוכן>en-us. מצא שתי תיקיות: EndHTML ו- WelcomeHTML. תיקיות אלה מכילות את קבצי ה- HTML והקבצים המשויכים שמאפשרים לך להציג (למשתמש) מידע בסוף ובהתחלה של תהליך פריסת החבילה. ערוך את הקבצים בתיקיית ה- HTML של תיקיות אלה כדי להוסיף מידע לתצוגה לחבילה שלך.
ניתן להוסיף את קבצי ה- HTML בחבילה גם בשפות אחרות, כך שהתוכן ב- HTML יופיע בשפה המבוססת על הגדרות האזור של מחשב המשתמש. לשם כך:
צור עותק של התיקיה en-us תחת PkgFolder>תוכן.
שנה את שם התיקיה שהועתקה לשפה המתאימה. לדוגמה, עבור עברית, שנה את שמה ל- he-IL.
שנה את תוכן קבצי ה- HTML כדי להוסיף תוכן בעברית.
קבע את תצורה של החבילה
הגדר את תצורת החבילה על-ידי הוספת מידע לגבי החבילה בקובץ ImportConfig.xml בפרויקט. עיין ב- ImportConfig Reference לדוגמה ותיאורים של הרכיבים והתכונות החוקיים לשימוש.
הוספת קוד מותאם אישית
אתה יכול להוסיף קוד מותאם אישית שפועל לפני, במהלך ואחרי שהחבילה מיובאת לסביבה. לשם כך, בצע את ההנחיות האלה.
ערוך את הקובץ PackageTemplate.cs (אוֹ PackageImportExtension.cs) בתיקיית הבסיס של הפרויקט.
בקובץ C#, באפשרותך:
להזין קוד מותאם אישית שיבוצע בעת אתחול החבילה בהגדרת פעולת השירות לעקיפה של InitializeCustomExtension.
ניתן להשתמש בפעולת שירות זו כדי לאפשר למשתמשים להשתמש בפרמטרי זמן הריצה בעת הפעלת חבילה. כמפתח, תוכל להוסיף לחבילה שלך תמיכה עבור כל פרמטר זמן ריצה באמצעות המאפיין RuntimeSettings, כל עוד יש לך קוד כדי לעבד אותו על בסיס קלט המשתמש.
למשל, הקוד לדוגמה הבא הופך פרמטר זמן ריצה בשם SkipChecks לזמין עבור החבילה עם שני ערכים אפשריים: true או false. הקוד לדוגמה בודק אם המשתמש ציין פרמטרי זמן ריצה בעת הפעלת Package Deployer (באמצעות שורת הפקודה או PowerShell), ולאחר מכן מעבד את המידע בהתאם. אם המשתמש לא ציין פרמטר זמן ריצה בעת הפעלת החבילה, ערך המאפיין RuntimeSettings יהיה Null.
C#
publicoverridevoidInitializeCustomExtension()
{
// 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");
}
להזין קוד מותאם אישית שיבוצע לפני ייבוא הפתרונות בהגדרת פעולת השירות לעקיפה של 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 (או PkgAssets) בחלונית סייר הפתרונות ולאחר מכן ערוך את ערך ההחזרה תחת המאפיין GetImportPackageDataFolderName.
C#
publicoverridestring 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.
C#
publicoverridestringGetNameOfImport(bool plural)
{
return"Package Short Name";
}
הערך המוחזר הוא שם החבילה שמופיע בעמוד בחירת החבילה באשף Package Deployer של Dynamics 365.
לשנות את תיאור החבילה על-ידי עריכת ערך ההחזרה תחת המאפיין GetImportPackageDescriptionText.
C#
publicoverridestring GetImportPackageDescriptionText
{
get { return"Package Description"; }
}
ערך מוחזר זה הוא תיאור החבילה שמופיע לצד שם החבילה בעמוד בחירת החבילה באשף Package Deployer.
לשנות את השם הארוך של החבילה על-ידי עריכת ערך ההחזרה תחת המאפיין GetLongNameOfImport.
C#
publicoverridestring GetLongNameOfImport
{
get { return"Package Long Name"; }
}
השם הארוך של החבילה מופיע בעמוד הבא לאחר בחירת החבילה להתקנה.
בנוסף, הפונקציה והמשתנים הבאים זמינים עבור החבילה:
ממשק משגר שבו נעשה שימוש כדי לאפשר לפקד שלך לעבד ממשק משתמש משלו במהלך פריסת החבילה. השתמש בממשק זה כדי לעטוף פקודות או רכיבים של ממשק המשתמש. חשוב לאתר ערכי Null במשתנה זה לפני השימוש בו מכיוון שייתכן שהוא הוגדר לערך.
מצביע למחלקה של CrmServiceClient שמאפשר לחבילה להפנות אל Dynamics 365 מתוך החבילה. השתמש במצביע זה כדי לבצע פעולות שירות של SDK ופעולות אחרות בפעולות השירות שעקפת.
ציין אם Dynamics 365 Package Deployer צריך לדלג על כל פעולות ייבוא הנתונים, כגון ייבוא נתונים לדוגמה של Dataverse, נתוני קבצים שטוחים ונתונים שיוצאו מכלי העברת התצורה. ציין true או false. ברירת המחדל היא false.
כדי לבנות חבילה שנוצרה באמצעות ה-CLI, תוכל לטעון את קובץ ה-csproj ב- Visual Studio, אך במקום זאת נשתמש בפקודה dotnet וב-MSBuild. הדוגמה להלן מניחה שספריית העבודה מכילה את קובץ ה- *csproj.
אתה יכול לבחון באופן אופציונלי את הפרטים של החבילה הבנויה.
Bash
> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
כדי לבנות את החבילה, לחץ על F5 ב- Visual Studio או בחר בנייה>בניית פתרון.
החבילה שלך מורכבת מהקבצים הבאים תחת התיקיה <Project>\Bin\Debug.
<שם חבילה> תיקייה : שם התיקיה זהה לזה ששינית עבור שם תיקיית החבילה שלך ב-צעד 2.g בסעיף זה הוסף קוד מותאם אישית. תיקיה זו מכילה את כל הפתרונות, נתוני התצורה, הקבצים השטוחים והתוכן עבור החבילה.
הערה
ייתכן שתראה תיקיית NET. (למשל, net472) המכילה תיקיית pdpublish. ה- DLL שלך וקבצי פרויקט אחרים נמצאים בתיקיית pdpublish זו.
<שם חבילה> .DLL : המכלול מכיל את הקוד המותאם אישית עבור החבילה שלך. כברירת מחדל, שם ההרכבה זהה לשם פרויקט שלך.
פרוס
לאחר יצירת חבילה, תוכל לפרוס אותה במופע של Dataverse באמצעות הכלי Package Deployer או באמצעותWindows PowerShell או פקודת CLI.