Izveidot pakotnes Package Deployer tool
Package Deployer ļauj administratoriem izvietot pakotnes Microsoft Dataverse instancēs. Package Deployer pakotnē var būt ietverts jebkurš no šiem vienumiem vai visi:
- viens vai vairāki Dataverse risinājuma faili;
- Izplāto vai eksportēto konfigurāciju datu faili no Konfigurācijas migrēšanas rīka. Papildu informāciju par rīku skatiet Konfigurācijas datus var pārvietot dažādās instancēs un organizācijās, izmantojot Konfigurācijas migrācijas rīku.
- Pielāgotais kods, kas darbojas pirms, pēc vai pakotnes izvietošanas laikā uz Dataverse instanci.
- pakotnes HTML saturs, kas var tikt parādīts izvietošanas sākumā un beigās. Šis saturs var būt noderīgs, ja pakotnē izvietojamajiem risinājumiem un failiem jāpievieno apraksts.
Note
Ir cits pakotnes tips, ko sauc par spraudņa pakotni. Šāda veida pakotne ir no spraudņa atkarīgām montāžas komplektiem, un tai nav attiecību ar Package Deployer pakotnēm.
Priekšnoteikumi
- Pārliecinieties, vai visi risinājumi un pārējie faili, ko vēlaties iekļaut pakotnē, ir gatavi.
- Visual Studio 2019. gads vai jaunāka versija, vai Visual Studio Kods.
Procesa pārskats
Lai izveidotu Package Deployer pakotni, veiciet tālāk norādītās darbības.
- Izveidojiet Visual Studio vai MSBuild projektu
- Risinājumu un citu failu pievienošana projektam
- Nodrošināto HTML failu atjaunināšana (nav obligāti)
- Norādiet pakotnes konfigurācijas vērtības
- Definējiet pielāgotu kodu pakotnei
- Būvējiet un izvietojiet pakotni
Šīs darbības ir detalizēti aprakstītas šajā rakstā.
Izveidojiet pakotnes projektu
Pirmā darbība ir izveidot Visual Studio vai MSBuild projektu pakotnei. Lai to izdarītu, izstrādes datorā jābūt instalētam vienam no diviem pieejamajiem rīku paplašinājumiem. Ja izmantojat Visual Studio Code, instalējiet Microsoft Power Platform CLI. Pretējā gadījumā, ja izmantojat Visual Studio 2019 vai jaunāku versiju, instalējiet Power Platform rīkus Visual Studio.
Tālāk atlasiet atbilstošo cilni, lai uzzinātu, kā izveidot projektu, izmantojot vēlamo rīka paplašinājumu. Abi rīki izvada projektu līdzīgā formātā.
Izpildiet pac Pakotnes init , lai izveidotu sākotnējo pakotni. Papildu informācija: pac pakotne
pac package init help
pac package init --outputDirectory DeploymentPackage
Iegūtā CLI izvade ietver tālāk redzamās mapes un failus. Šeit kā piemērs tika izmantots mapes "DeploymentPackage".
C:.
└───DeploymentPackage
│ DeploymentPackage.csproj
│ PackageImportExtension.cs
│
└───PkgAssets
ImportConfig.xml
manifest.ppkg.json
Izveidotajā projektā atrodiet ImportConfig.xml konfigurācijas failu mapē PkgAssets un failu PackageImportExtension.cs. Jūs modificēsit šos failus, kā aprakstīts tālāk šajā rakstā.
Pievienojiet pakotnes failus
Kad esat izveidojis pakotnes projektu, varat sākt pievienot risinājumus un citus failus projektā.
Izmantojot CLI, varat pievienot ārējas pakotnes, risinājumus un atsauces uz jūsu pakotnes projektu, izmantojot kādu no pievienotajām apakškomandām. Ievadiet pac package help
, lai skatītu apakškomandu sarakstu. Pievienosim risinājumu mūsu pakotnei.
> 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.
Pakotnes konfigurēšana
Definējiet pakotnes konfigurāciju, pievienojot informāciju par jūsu pakotni projekta ImportConfig.xml failā. Skatiet ImportConfig atsauci , lai skatītu izmantojamo derīgo elementu un atribūtu piemēru un aprakstus.
Pievienojiet pielāgotu kodu
Varat pievienot pielāgotu kodu, kas tiek izpildīts pirms pakotnes importēšanas vidē, tās laikā un pēc tam. Lai to izdarītu, izpildiet norādījumus.
Rediģējiet PackageTemplate.cs (vai PackageImportExtension.cs) failu projekta saknes mapē.
C# failā varat:
Ievadiet pielāgoto kodu, kas jāizpilda, kad pakotne tiek inicializēta ignorēšanas metodes
InitializeCustomExtension
definīcijā.Šo metodi var izmantot, lai lietotājiem, vadot pakotni, ļautu izmantot izpildlaika parametrus. Kā izstrādātājs jūs varat pievienot jūsu pakotnei jebkura izpildlaika parametra atbalstu, izmantojot RuntimeSettings rekvizītu, ja vien jums ir kods tā apstrādei, pamatojoties uz lietotāja ievadi.
Piemēram, šāds parauga kods iespējot izpildlaika parametru ar nosaukumu
SkipChecks
pakotnei, kurai ir divas iespējamās vērtības: patiesa vai nepatiesa. Parauga koda pārbaudes, ja lietotājs ir norādījis izpildlaika parametrus Package Deployer palaišanas laikā (izmantojot komandrindu vai PowerShell), attiecīgi apstrādā informāciju. Ja, izpildot pakotni, lietotājs nav norādījis izpildlaika parametru, šī RuntimeSettings rekvizīta vērtība nebūs spēkā.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"); }
Šis kods ļauj administratoram izmantot komandrindu vai Import-CrmPackage cmdlet, lai norādītu, vai izlaist drošības pārbaudes, izpildot rīku, Package Deployer, lai importētu pakotni. Papildinformācijai: Pakotņu izvietošana, izmantojot Package Deployer un Windows PowerShell
Ievadiet pielāgotu kodu, kas jāizpilda, pirms risinājumi tiek importēti, izmantojot
PreSolutionImport
ignorēšanas metodes definīciju, lai norādītu vai pārlabotu pielāgojumus, atjauninot norādīto risinājumu mērķa Dataverse instancē, kā arī to, vai automātiski aktivizēt spraudņus un darbplūsmas.Izmantojiet ignorēšanas metodes definīciju,
RunSolutionUpgradeMigrationStep
lai veiktu datu transformāciju vai jaunināšanu starp divām risinājuma versijām Šī metode tiek izsaukta tikai tad, ja risinājums, kuru importējat, jau ir pieejams mērķa Dataverse instancē.Šī funkcija sagaida tālāk norādītos parametrus:
Parametrs Apraksts solutionName
Risinājuma nosaukums oldVersion
Vecā risinājuma versijas numurs newVersion
Jaunā risinājuma versijas numurs oldSolutionId
Vecā risinājuma GUID. newSolutionId
Jaunā risinājuma GUID. Ievadiet pielāgoto kodu, kas jāizpilda, pirms risinājuma importēšana tiek pabeigta
BeforeImportStage
metodes pārlabošanas definīcijā. Pirms risinājuma importēšanas pabeigšanas datu paraugs un daži izplātie faili risinājumam, kas norādītiImportConfig.xml
failā, tiek importēti.Pārlabojiet pašlaik atlasīto valodu konfigurācijas datu importēšanai, izmantojot ignorēšanas metodes definīciju
OverrideConfigurationDataFileLanguage
. Ja norādītās valodas norādītais lokalizācijas ID (LCID) pakotnes pieejamo valodu sarakstā nav atrodams, tiek importēts noklusējuma datu fails.ImportConfig.xml
faila<cmtdatafiles>
mezglā ir norādītas konfigurācijas datu pieejamās valodas. Noklusējuma konfigurācijas datu importēšanas fails ir norādītscrmmigdataimportfile
atribūtā, failāImportConfig.xml
.Datu pārbaužu izlaišana (OverrideDataImportSafetyChecks = true) šajā gadījumā var būt efektīva, ja esat pārliecināts, ka mērķa Dataverse instancē nav datu.
Ievadiet pielāgoto kodu, kas jāizpilda, pēc importēšana tiek pabeigta
AfterPrimaryImport
>metodes pārlabošanas definīcijā. Atlikušie izplātie faili, kas netika importēti agrāk, pirms tika sākta risinājuma importēšana, tiek importēti tagad.Mainiet pakotņu mapes noklusējuma nosaukumu uz vēlamo pakotnes nosaukumu. Lai to izdarītu, pārdēvējiet
PkgFolder
(vai PkgAssets) mapi Risinājuma pārlūkar rūtī, un pēc tam rediģējiet rekvizītaGetImportPackageDataFolderName
atgriezto vērtību.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"; } }
Mainiet pakotnes nosaukumu, rediģējot atgriezto vērtību
GetNameOfImport
rekvizītā.public override string GetNameOfImport(bool plural) { return "Package Short Name"; }
Šī atgrieztā vērtība ir pakotnes nosaukums, kas tiek parādīts Dynamics 365 Package Deployer vedņa pakotnes atlases lapā.
Mainiet pakotnes aprakstu, rediģējot atgriezto vērtību
GetImportPackageDescriptionText
rekvizītā.public override string GetImportPackageDescriptionText { get { return "Package Description"; } }
Šī atgrieztā vērtība ir pakotnes apraksts, kas tiek parādīts līdzās pakotnes nosaukumam vedņa pakotnes atlases lapā Package Deployer .
Mainiet pakotnes garo nosaukumu, rediģējot atgriezto vērtību
GetLongNameOfImport
rekvizītā.public override string GetLongNameOfImport { get { return "Package Long Name"; } }
Pēc instalējamās pakotnes atlasīšanas pakotnes garais nosaukums tiek parādīts nākamajā lapā.
Turklāt pakotnē ir pieejamas šādas funkcijas un mainīgie:
Nosaukums/vārds, uzvārds Veids Apraksts CreateProgressItem(String) Function Izmanto, lai izveidotu jaunu progresa elementu lietotāja interfeisā (UI). RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Tiek izmantots, lai atjauninātu sarunas radīto progresu CreateProgressItem(String).
ProgressPanelItemStatus ir uzskaitījums ar šādām vērtībām:
Darbojas = 0
Pabeigta = 1
Neizdevās = 2
Brīdinājums = 3
Nav zināms = 4RaiseFailEvent(String, Exception) Function Izmanto, lai neizdotos pašreizējā statusa importēšanā ar izņēmuma ziņojumu. IsRoleAssoicatedWithTeam(Guid, Guid) Function Izmanto, lai noteiktu, vai loma ir saistīta ar noteiktu darba grupu. IsWorkflowActive(Guid) Function Izmanto, lai noteiktu, vai noteiktā darbplūsma ir aktīva. PackageLog Klases rādītājs Rādītājs uz pakotnes inicializēto reģistrēšanas interfeisu. Šo interfeisu izmanto pakotne, lai reģistrētu ziņojumus un izņēmumus pakotnes žurnālfailā. RootControlDispatcher Rekvizīts Dispečeru interfeiss, kas tiek izmantots, lai nodrošinātu jūsu kontroli, veicot pakotnes izvietošanu, lai padarītu to par savu UI. Izmantojiet šo interfeisu, lai aplauztu visus UI elementus vai komandas. Pirms šī mainīgā izmantošanas ir svarīgi pārbaudīt, vai tajā nav vērtību Null, jo tas, iespējams, nav iestatīts uz vērtību. CrmSvc Rekvizīts Rādītājs uz CrmServiceClient klasi, kas ļauj pakotnei adresēt Dynamics 365 pakotnes iekšienē. Izmantojiet šo rādītāju, lai pārlabotajās metodēs izpildītu SDK metodes un citas darbības. DataImportBypass Rekvizīts Norādiet, vai Dynamics 365 Package Deployer izlaidīs visas datu importēšanas operācijas, piemēram, Dataverse datu paraugu, plakanos faila datus un datus, kas eksportēti no Konfigurācijas migrācijas rīka. Norādiet patiess vai aplams. Noklusējuma vērtība ir false
.OverrideDataImportSafetyChecks Rekvizīts Norādiet, vai Dynamics 365 Package Deployer apiet dažas drošības pārbaudes, kas palīdz uzlabot importēšanas veiktspēju. Norādiet true
vaifalse
. Noklusējuma vērtība irfalse
.
Šis rekvizīts ir jāiestata tikai tadtrue
, ja mērķa Dataverse instancē nav datu.Saglabājiet savu projektu. Nākamais solis ir pakotnes būvēšana.
Būvēšana un izvietošana
Nākamajās sadaļās ir aprakstīts, kā izveidot un izvietot pakotni.
Būvējums
Pakotnes izveide ir aprakstīta tālāk atkarībā no tā, kuru rīku izmantojat.
Lai izveidotu pakotni, kas izveidota ar CLI, jūs varētu ielādēt .csproj failu Visual Studio, bet tā vietā mēs izmantosim komandu dotnet un MSBuild. Tālāk redzamajā piemērā tiek pieņemts, ka darba direktorijā ir *.csproj fails.
> dotnet publish
DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Varat arī skatīt iebūvētās pakotnes detalizētu informāciju.
> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Jūsu pakotne sastāv no šādiem failiem <Projekts>\Bin\Debug mapē.
- <Mape PackageName> : mapes nosaukums ir tāds pats kā pakotnes mapes nosaukums solis 2.g šajā sadaļāPievienot pielāgotu kodu . Šī mape satur visus risinājumus, konfigurāciju datus, plakanos failus un pakotnes saturu.
Note
Iespējams, redzēsit .NET mapi (piemēram, net472), kurā ir iekļauta failu publicēšanas mape. Jūsu DLL un citi projekta faili ir pdpublish mapē.
- <PackageName.DLL>: montāža satur jūsu pakotnes pielāgoto kodu. Pēc noklusējuma montāžas nosaukums ir tāds pats kā projekta nosaukums.
Izvietot
Pēc pakotnes izveidošanas to var izvietot Dataverse instancē, piemēram, izmantojot Package Deployer rīku vai Windows PowerShell.
Lai izvietotu Package Deployer tool, vispirms lejupielādējiet rīku, kā aprakstīts Dataverse izstrādes rīkos. Pēc tam izpildiet detalizētu informāciju par pakotņu izvietošanu rakstā Pakotņu izvietošana, izmantojot Package Deployer vai Windows PowerShell.
Lai izvietotu, izmantojot CLI, izmantojiet
pac package deploy
komandu.> pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Note
Lai pakotni izvietotu mērķa vidē, izmantojot CLI, vispirms ir jāiestata autentifikācijas profils un jāatlasa organizācija. Papildu informāciju skatiet izveidot pac auth pac organizācijas atlases
Paraugprakse
-Tālāk uzskaitīti daži ieteikumi, kā sekot, strādājot ar pakotņu Package Deployer pakotnēm.
Pakotņu izveide
Veidojot pakotnes, izstrādātājiem ir:
- Pārliecinieties, ka paku komplekti ir parakstīti.
Pakotņu izvietošana
Izvietojot pakotnes, Dataverse administratoriem jāveic šādas darbības:
- Pieprasiet parakstītus pakotņu komplektus , lai jūs varētu izsekot montāžai līdz tās avotam.
- Pirms palaišanas uz ražošanas instance pārbaudiet iepakojumu pirmsražošanas instancē, vēlams, ražošanas instance spoguļattēlu.
- Dublējiet ražošanas instance pirms pakotnes izvietošanas.