Package Deployer құралы үшін бумалар жасау
Package Deployer құралы әкімшілердің Microsoft Dataverse даналарында бумаларды орналастыруына мүмкіндік береді. Package Deployer бумасы келесілердің бірінен тұруы немесе барлығын қамтуы мүмкін:
- Dataverse шешім файлдарының бірі немесе бірнешеуі.
- Configuration Migration Tool құралынан алынған құрылымданбаған файлдар немесе экспортталған конфигурация деректері файлы. Құрал туралы қосымша ақпаратты Configuration Migration Tool құралы арқылы конфигурация деректерін даналар және ұйымдар арасында жылжыту бөлімінен қараңыз.
- Бума Dataverse данасында орналастырылмас бұрын, кезінде немесе орналастырылғаннан кейін іске қосуға болатын теңшелетін код.
- HTML мазмұны орналастыру үрдісінің басында және аяғында көрсетілетін бумаға арналған. Бұл контент бумада орналастырылған шешімдер және файлдардың сипаттамасын ұсыну үшін пайдалы болуы мүмкін.
Ескертпе
Қосылатын модуль бумасы деп аталатын басқа бума түрі бар. Мұндай бума түрі қосылатын модульге тәуелді жинақтарға арналған және Package Deployer бумаларына қатысы жоқ.
Алғышарттар
- Бумаға қосу керек барлық шешімдер мен басқа файлдардың бар екеніне көз жеткізіңіз.
- Visual Studio 2019 немесе одан кейінгі, немесе Visual Studio Код.
Процеске шолу
Package Deployer бума жасау үшін келесі қадамдарды орындаңыз.
- Visual Studio немесе MSBuild жобасын жасаңыз
- Жобаға шешімдер мен басқа файлдарды қосыңыз
- Берілген HTML файлдарын жаңартыңыз (міндетті емес)
- Буманың конфигурация мәндерін көрсетіңіз
- Буманың реттелетін кодын анықтаңыз
- Буманы құрастырыңыз және орналастырыңыз
Бұл қадамдар осы мақалада егжей-тегжейлі сипатталған.
Бума жобасын жасаңыз
Бірінші қадам — бума үшін Visual Studio немесе MSBuild жобасын жасау. Ол үшін әзірлеу компьютерінде екі қолжетімді құрал кеңейтімінің бірі орнатылған болуы керек. Егер Visual Studio Code пайдалансаңыз, Microsoft Power Platform CLI қызметін орнатыңыз. Әйтпесе, Visual Studio 2019 немесе одан кейінгі нұсқасын пайдалансаңыз, үшін Power Platform құралдарын орнатыңыз Visual Studio.
Қажетті құрал кеңейтімінің көмегімен жобаны жасау жолын білу үшін төмендегі жерден сәйкес қойыншаны таңдаңыз. Екі құрал да жобаны ұқсас пішімде шығарады.
Бастапқы буманы жасау үшін pac package init пәрменін орындаңыз. Қосымша ақпарат: pac бумасы
pac package init help
pac package init --outputDirectory DeploymentPackage
Алынған CLI шығысында төменде көрсетілген қалталар мен файлдар бар. Мұнда мысал ретінде "DeploymentPackage" қалта атауы пайдаланылған.
C:.
└───DeploymentPackage
│ DeploymentPackage.csproj
│ PackageImportExtension.cs
│
└───PkgAssets
ImportConfig.xml
manifest.ppkg.json
Жасалған жобада PkgAssets қалтасынан ImportConfig.xml конфигурация файлын және PackageImportExtension.cs файлын табыңыз. Сіз бұл файлдарды осы мақалада кейінірек сипатталғандай өзгертесіз.
Бума файлдарын қосу
Бума жобасын жасағаннан кейін, сол жобаға шешімдер мен басқа файлдарды қоса бастауыңызға болады.
CLI қызметін пайдаланған кезде, сыртқы бумаларды, шешімдерді және сілтемелерді бума жобасына add ішкі пәрмендерінің бірін пайдаланып қосуға болады. Ішкі пәрмендер тізімін көру үшін pac package help
пәрменін енгізіңіз. Бумаға шешім қосайық.
> 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.
Буманы конфигурациялау
Бума туралы ақпаратты жобадағы ImportConfig.xml файлына қосу арқылы бума конфигурациясын анықтаңыз. Қолданылатын жарамды элементтер мен төлсипаттардың мысалы мен сипаттамасын ImportConfig сілтемесін қараңыз.
Реттелетін кодты қосу
Бума ортаға импортталғанға дейін, импортталу кезінде және импортталған кейін орындалатын реттелетін кодты қосуға болады. Ол үшін келесі нұсқауларды орындаңыз.
Жобаның түбірлік қалтасындағы PackageTemplate.cs (немесе PackageImportExtension.cs) файлын өңдеңіз.
C# файлында келесі әрекеттерді орындай аласыз:
Бума
InitializeCustomExtension
алдын ала анықтау әдісі анықтамасында баптандырылғанда орындалатын реттелмелі кодты енгізіңіз.Бұл әдісті пайдаланушыларға буманы орындау кезінде орындалу уақыты параметрлерін пайдалануға мүмкіндік беру үшін пайдалануға болады. Әзірлеуші ретінде сізде оны пайдаланушы кірісі негізінде жалғастыру үшін код болғанда RuntimeSettings сипатын пайдаланып кез келген орындалу уақыты параметріне қолдау қосуға болады.
Мысалы, келесі үлгі коды шын немесе жалған екі ықтимал мәні бар бума үшін
SkipChecks
деп аталатын орындалу уақыты параметрін іске қосады. Үлгі коды пайдаланушының Package Deployer іске қосу кезінде (немесе командалық жолды немесе PowerShell көмегімен) қандай-да бір орындалу уақыты параметрлерін көрсеткенін тексереді, содан кейін ақпаратты сәйкесінше өңдейді. Пайдаланушы буманы іске қосу кезінде орындалу уақыты параметрін көрсетпесе, RuntimeSettingsмүлік мәні нөлге тең болады.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"); }
Бұл код буманы импорттау үшін Package Deployer құралын іске қосу кезінде қауіпсіздік тексерістерін өткізіп жіберу қажеттігін көрсету үшін әкімшіге пәрмен жолын немесе Import-CrmPackage командлетін пайдалануға мүмкіндік береді. Қосымша ақпарат: Package Deployer және Windows PowerShell пайдаланып бумаларды орналастыру
Шешімдерді көрсетілген шешімді мақсатты Dataverse данасында жаңарту барысында теңшелімдерді сақтау немесе қайта жазу қажеттігін, сондай-ақ қосылатын модульдер мен жұмыс ағындарын автоматты түрде белсендіру қажеттігін көрсету үшін
PreSolutionImport
алдын ала анықтау әдісі анықтамасында импорттау алдында орындалатын реттелмелі кодты енгізіңіз.Деректерді түрлендіру немесе шешімнің екі нұсқасы арасында жаңартуды орындау үшін
RunSolutionUpgradeMigrationStep
қайта анықтау әдісінің анықтамасын пайдаланыңыз Бұл әдіс импортталатын шешім мақсатта бұрыннан бар болса ғана шақырылады Dataverse мысал.Бұл функция келесі параметрлерді күтеді:
Параметр Сипаттама solutionName
Шешімнің атауы oldVersion
Ескі шешімнің нұсқа нөмірі newVersion
Жаңа шешімнің нұсқа нөмірі oldSolutionId
Ескі шешімнің GUID. newSolutionId
Жаңа шешімнің GUID. Шешімді импорттау
BeforeImportStage
әдісінің алдын ала анықтау анықтамасында аяқталуы алдында орындалатын реттелмелі кодты енгізіңіз. Деректер үлгісі менImportConfig.xml
файлында көрсетілген шешімдердің кейбір тегіс файлдары шешімді импорттау аяқталғанша импортталады.OverrideConfigurationDataFileLanguage
қайта анықтау әдісі анықтамасын пайдаланып конфигурация деректерін импорттау үшін ағымдағы таңдалған тілді қайта анықтаңыз. Көрсетілген тілдің көрсетілген тіл идентификаторы (LCID) бумадағы қолжетімді тілдер тізімінде табылмаса, әдепкі деректер файлы импортталады.ImportConfig.xml
файлындағы<cmtdatafiles>
түйінінде конфигурация деректерінің қолжетімді тілдерін көрсетесіз. Әдепкі конфигурация деректерін импорттау файлыImportConfig.xml
файлындағыcrmmigdataimportfile
төлсипатында көрсетіледі.Деректерді тексеруді өткізіп жіберу (OverrideDataImportSafetyChecks = true) мақсатты Dataverse данасында ешқандай деректер жоқ екеніне сенімді болсаңыз, бұл жерде тиімді болуы мүмкін.
Импорттау
AfterPrimaryImport
> әдісінің алдын ала анықтау анықтамасында аяқталғаннан кейін орындалатын реттелмелі кодты енгізіңіз. Шешімді импорттау басталғанға дейін бұрын импортталмаған қалған жалпақ файлдар қазір импортталады.Бума қалтасының әдепкі атауын қалаған бума атауына өзгертіңіз. Ол үшін Шешім жетектеушісі тақтасындағы
PkgFolder
(немесе PkgAssets) қалтасының атауын өзгертіп, содан соң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"; } }
Бұл қайтарылған мән Package Deployer шеберіндегі буманы таңдау бетіндегі бума атауының жанында пайда болатын бума сипаттамасы болып табылады.
GetLongNameOfImport
сипатындағы қайтару мәнін өңдеу арқылы буманың ұзақ атын өзгертіңіз.public override string GetLongNameOfImport { get { return "Package Long Name"; } }
Буманың ұзақ атауы келесі бетте орнатылатын буманы таңдағаннан кейін пайда болады.
Сонымен қатар бумада келесі функция мен айнымалылар қолжетімді:
Аты Түрі Сипаттама CreateProgressItem(String) Function Пайдаланушы интерфейсінде (UI) жаңа орындалу барысы элементін жасау үшін пайдаланылады. RaiseUpdateEvent(String, ProgressPanelItemStatus) Function CreateProgressItem(String) шақыру арқылы жасалған орындалу барысын жаңарту үшін пайдаланылады.
ProgressPanelItemStatus келесі мәндері бар санау болып табылады:
Орындалуда = 0
Аяқталған = 1
Сәтсіз аяқталған = 2
Ескерту = 3
Белгісіз = 4RaiseFailEvent(String, Exception) Function Ағымдағы күйді импорттауды ерекше хабарлама арқылы сәтсіз аяқтау үшін пайдаланылады. IsRoleAssoicatedWithTeam(Guid, Guid) Function Рөлдің белгілі бір топпен байланыстырылғанын анықтау үшін пайдаланылады. IsWorkflowActive(Guid) Function Көрсетілген жұмыс ағынының белсенді немесе белсенді еместігін анықтау үшін пайдаланылады. PackageLog Сынып көрсеткіші Буманың бастапқы тіркеу интерфейсіне арналған көрсеткіші. Бұл интерфейс бума арқылы бума журналы файлына хабарламалар мен ерекше жағдайларды тіркеу үшін пайдаланылады. RootControlDispatcher Сипат Буманы орналастыру барысында басқару элементіне оның өзіндік UI интерфейсін көрсетуге мүмкіндік беру үшін пайдаланылатын диспетчер интерфейсі. Бұл интерфейсті кез келген UI элементтерін немесе пәрмендерін орау үшін пайдаланыңыз. Бұл айнымалы мәнді пайдаланбас бұрын оны бос мәндерге тексеру маңызды, себебі ол мәнге орнатылмауы мүмкін. CrmSvc Сипат Бумаға Dynamics 365 жүйесіне бума ішінен кіруге мүмкіндік беретін CrmServiceClient сыныбы көрсеткіші. Бұл көрсеткішті SDK әдістерін және алдын ала анықталған әдістердегі басқа әрекеттерді орындау үшін пайдаланыңыз. DataImportBypass Сипат Dynamics 365 Package Deployer жүйесінің Dataverse деректер үлгісін, тегіс файл деректерін, сондай-ақ Configuration Migration Tool құралынан экспортталатын деректер секілді барлық деректерді импорттау әрекеттерін өткізіп жіберетінін көрсетіңіз. Шын немесе жалған күйін көрсетіңіз. Әдепкі – false
.OverrideDataImportSafetyChecks Сипат Dynamics 365 Package Deployer импорттау өнімділігін жақсартуға көмектесетін кейбір қауіпсіздік тексерулерін айналып өтетінін көрсетіңіз. true
немесеfalse
көрсетіңіз. Әдепкі –false
.
Бұл сипаттыtrue
тек мақсатты Dataverse данасында ешқандай деректер жоқ болса ғана орнату керек.Жобаны сақтау. Келесі қадам — буманы құрастыру.
Құрастыру және орналастыру
Келесі бөлімдер буманы құру және орналастыру жолын сипаттайды.
Құрастыру
Пакетті құру қай құралды пайдаланып жатқаныңызға байланысты төменде сипатталған.
CLI көмегімен жасалған буманы құру үшін .csproj файлын Visual Studio ішіне жүктей аласыз, бірақ оның орнына біз dotnet пәрменін және MSBuild пәрменін қолданамыз. Төмендегі мысал жұмыс каталогында *.csproj файлы бар деп болжайды.
> dotnet publish
DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Құрастырылған бума туралы мәліметтерді көруіңізге болады.
> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Сіздің бумаңыз <Project>\Bin\Debug қалтасындаға келесі файлдардан жасалады.
- <PackageName> қалта: қалта атауы осы бөлімнің қадам 2.g ішіндегі бума қалта атауы үшін өзгертілгенмен бірдей Қосу теңшелетін код. Бұл қалта бумаға арналған барлық шешімдер, конфигурация деректері, тегіс файлдар, сондай-ақ мазмұндардан тұрады.
Ескертпе
pdpublish қалтасын қамтитын .NET қалтасын (мысалы, net472) көруіңіз мүмкін. DLL және басқа жоба файлдары сол pdpublish қалтасында болады.
- <PackageName>.dll: Жинақта бума үшін теңшелетін код бар. Әдепкі бойынша жиын атауы жоба атауымен бірдей болады.
Қолдану
Буманы жасағаннан кейін, оны Package Deployer құралы, Windows PowerShell немесе CLI пәрменінің көмегімен Dataverse данасында орналастыруға болады.
Package Deployer құралының көмегімен рналастыру үшін алдымен Dataverse әзірлеу құралдары бөлімінде сипатталғандай құралды жүктеп алыңыз. Одан кейін Бумаларды Package Deployer немесе Windows PowerShell арқылы орналастыру мақаласындағы буманы орналастыру туралы толық ақпаратты орындаңыз.
CLI көмегімен орналастыру үшін
pac package deploy
пәрменін пайдаланыңыз.> pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Ескертпе
Буманы CLI көмегімен мақсатты ортаға орналастыру үшін алдымен аутентификация профилін реттеп, ұйымды таңдау қажет. Қосымша ақпарат: pac auth create, pac org select
Үздік тәжірибелер
Төменде Package Deployer бумалармен жұмыс істеу кезінде ұстануға болатын бірнеше практикалық кеңестер берілген.
Бумаларды жасау
Бумаларды жасау кезінде әзірлеушілер:
- Бума жинақтарына қол қойылғанына көз жеткізіңіз.
Бумаларды орналастыру
Бумаларды орналастыру кезінде Dataverse әкімшілері:
- Жинақ көзіне қайта оралу үшін қол қойылған бума жинақтарын талап етіңіз .
- Буманы өндіріс данасы құрылғысында іске қоспас бұрын, алдын ала өндіру данасында, жақсырақ өндіріс данасы айнадағы кескінінде тексеріңіз.
- Буманы қолданбас бұрын өндіріс данасы сақтық көшірмесін жасаңыз.