Belešku
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da se prijavite ili da promenite direktorijume.
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da promenite direktorijume.
Package Deployer omogućava administratorima primenu paketa na instancama usluge Microsoft Dataverse. Package Deployer paket može da se sastoji od bilo čega sledećeg:
- Jedna ili više datoteka Dataverse rešenja.
- Proste datoteke ili izvezena datoteka konfiguracije iz alatke Configuration Migration Tool. Za više informacija o alatki, pogledajte članak Premeštanje podataka o konfiguraciji između instanci i organizacija pomoću alatke Configuration Migration Tool.
- Prilagođeni kôd koji može da se pokreće pre, tokom ili posle primene paketa u Dataverse instanci.
- HTML sadržaj karakterističan za paket koji može biti prikazan na početku i na kraju procesa primene. Ovaj sadržaj može biti koristan za pružanje opisa rešenja i datoteka primenjenih u paketu.
Belešku
Postoji još jedan tip paketa koji se zove paket dodatnih komponenti. Takva vrsta paketa je za zavisne sklopove dodatnih komponenti i nema nikakav odnos sa Package Deployer paketima.
Preduslovi
- Proverite da li ste spremili sva rešenja i druge datoteke koje želite da uključite u paket.
- Visual Studio 2019 ili kasnije, ili Visual Studio Code.
Pregled procesa
Da biste kreirali Package Deployer paket, izvršite sledeće korake.
- Kreirajte Visual Studio ili MSBuild projekat
- Dodajte rešenje i druge datoteke projektu
- Ažurirajte obezbeđene HTML datoteke (opcionalno)
- Navedite vrednosti konfiguracije za paket
- Definišite prilagođeni kôd za paket
- Izradite i primenite paket
Ovi koraci su detaljno opisani u ovom članku.
Kreirajte projekat za paket
Prvi korak je kreiranje Visual Studio ili MSBuild projekta za paket. Da biste to uradili, na razvojnom računaru morate imati instalirano jedno od dva dostupna proširenja alatke. Ako koristite Visual Studio Code, instalirajte Microsoft Power Platform CLI. U suprotnom, ako koristite Visual Studio KSNUMKS ili kasnije, instalirajte Power Platform alate za Visual Studio.
Izaberite odgovarajuću karticu ispod da biste saznali kako da kreirate projekat koristeći željeno proširenje alatke. Obe alatke izlaze iz projekta u sličnom formatu.
Pokrenite komandu pac package init da biste kreirali početni paket. Još informacija: pac package
pac package init help
pac package init --outputDirectory DeploymentPackage
Rezultujući CLI izlaz sadrži fascikle i datoteke prikazane ispod. Naziv fascikle „DeploymentPackage“ je ovde korišćen kao primer.
C:.
└───DeploymentPackage
│ DeploymentPackage.csproj
│ PackageImportExtension.cs
│
└───PkgAssets
ImportConfig.xml
manifest.ppkg.json
U kreiranom projektu pronađite ImportConfig.xml konfiguracionu datoteku u folderu PkgAssets i PackageImportExtension.cs fajlu. Vi ćete izmeniti ove fajlove kao što je opisano kasnije u ovom članku.
Dodajte datoteke paketa
Kada kreirate projekat paketa, možete početi da dodajete rešenja i druge datoteke tom projektu.
Kada koristite CLI, možete da dodate spoljne pakete, rešenja i reference na projekat paketa pomoću jedne od potkomandi add. Unesite pac package help da biste videli listu potkomandi. Hajde da dodamo rešenje u naš paket.
> 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.
Konfigurišite paket
Definišite konfiguraciju paketa dodavanjem informacija o vašem paketu u datoteci ImportConfig.xml u projektu. Pogledajte ImportConfig Reference za primer i opise važećih elemenata i atributa za korišćenje.
Dodajte prilagođeni kôd
Možete da dodate prilagođeni kôd koji se izvršava pre, tokom i nakon uvoza paketa u okruženje. Da biste to uradili, sledite sledeća uputstva.
Uredite datoteku PackageTemplate.cs (ili PackageImportExtension.cs) u osnovnoj fascikli projekta.
U C# datoteci možete da uradite sledeće:
Unesite prilagođeni kôd koji će se izvršiti kada se paket pokrene definiciji metoda za izmenu
InitializeCustomExtension.Ova metoda se može koristiti za omogućavanje korisnicima da koriste parametre izvođenja tokom izvođenja paketa. Kao programer, možete u svoj paket dodati podršku za bilo koji parametar izvršavanja koristeći svojstvo RuntimeSettings dok god imate kôd za obradu na osnovu korisničkog unosa.
Na primer, sledeći primer koda omogućava parametar izvođenja koji se zove
SkipChecksza paket koji ima dve moguće vrednosti: true ili false. Primer koda proverava da li je korisnik naveo bilo kakve parametre izvođenja tokom izvođenja alatke Package Deployer (bilo korišćenjem komandne linije ili platforme PowerShell), a zatim u skladu s tim obrađuje informacije. Ako korisnik tokom izvođenja paketa ne navede nijedan parametar izvođenja, svojstvo RuntimeSettings će biti bez vrednosti.public override void InitializeCustomExtension() { // 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"); } }Ovaj kôd omogućava administratoru da koristi komandnu liniju ili cmdlet komandu Import-CrmPackage da odredi da li da preskoči bezbednosne provere tokom pokretanja alatke Package Deployer za uvoz paketa. Još informacija: Primena paketa korišćenjem alatke Package Deployer i platforme Windows PowerShell
Unesite prilagođeni kôd koji treba izvršiti pre uvoza rešenja u definiciji zamene metode
PreSolutionImportda biste odredili da li treba da održavaju ili zamene prilagođavanja tokom ažuriranja navedenog rešenja u ciljnoj Dataverse instanci i da li treba automatski aktivirati dodatne komponente i tokove posla.Koristite definiciju metode prepisivanja da izvršite transformaciju
RunSolutionUpgradeMigrationSteppodataka ili nadogradnju između dve verzije rešenja Ovaj metod se poziva samo ako je rešenje koje uvozite već prisutno u ciljnoj Dataverse instanci.Ova funkcija očekuje sledeće parametre:
Parametar Opis solutionNameNaziv rešenja oldVersionBroj verzije starog rešenja newVersionBroj verzije novog rešenja oldSolutionIdGUID starog rešenja. newSolutionIdGUID novog rešenja. Premostite metod
OverrideSolutionImportDecisionda vratite UserRequestedImportAction enum koji kontroliše da li će uvoz rešenja biti preskočen, ažuriran ili nadograđen (podrazumevano).public override UserRequestedImportAction OverrideSolutionImportDecision( string solutionUniqueName, Version organizationVersion, Version packageSolutionVersion, Version inboundSolutionVersion, Version deployedSolutionVersion, ImportAction systemSelectedImportAction ) { return systemSelectedImportAction == ImportAction.Import ? UserRequestedImportAction.ForceUpdate : base.OverrideSolutionImportDecision(solutionUniqueName, organizationVersion, packageSolutionVersion, inboundSolutionVersion, deployedSolutionVersion, systemSelectedImportAction); }Unesite prilagođeni kôd koji će se izvršiti pre nego što se dovrši uvoz rešenja u definiciji zamene metode
BeforeImportStage. Podaci primera i neke proste datoteke za rešenja navedena u datoteciImportConfig.xmlse uvoze pre nego što se uvoz rešenja dovrši.Premostiti trenutno izabrani jezik za uvoz konfiguracionih podataka koristeći definiciju
OverrideConfigurationDataFileLanguagemetode premostivanja. Ako se navedeni ID jezika (LCID) navedenog jezika ne nađe na listi dostupnih jezika u paketu, podrazumevani fajl sa podacima se uvozi.Možete navesti dostupne jezike za podatke konfiguracije u čvoru
<cmtdatafiles>u datoteciImportConfig.xml. Podrazumevana datoteka za uvoz podataka konfiguracije navedena je u atributucrmmigdataimportfileu datoteciImportConfig.xml.Preskakanje provere podataka (OverrideDataImportSafetyChecks = istina) može biti efikasno ovde ako ste sigurni da ciljna Dataverse instanca ne sadrži nikakve podatke.
Unesite prilagođeni kôd koji će se izvršiti nakon što se dovrši uvoz rešenja u definiciji zamene metode
AfterPrimaryImport>. Preostali ravni fajlovi koji nisu uvezeni ranije, pre nego što je počeo uvoz rešenja, su uvezeni sada.Promenite podrazumevani naziv fascikle paketa u naziv paketa koji želite. Da biste to učinili, preimenujte fasciklu
PkgFolder(ili PkgAssets) u oknu Istraživač rešenja, a zatim izmenite povratnu vrednost ispod svojstvaGetImportPackageDataFolderName.public override string GetImportPackageDataFolderName { get { // WARNING this value directly correlates to the folder name in Solution // Explorer where the ImportConfig.xml and sub content is located. // Changing this name requires that you also change the correlating name // in Solution Explorer. return "PkgFolder"; } }Promenite ime paketa tako što ćete urediti povratnu vrednost ispod svojstva
GetNameOfImport.public override string GetNameOfImport(bool plural) { return "Package Short Name"; }Ova vraćena vrednost je ime vašeg paketa koji se pojavljuje na stranici za izbor paketa u čarobnjaku Dinamics KSNUMKS Package Deployer .
Promenite opis paketa tako što ćete urediti povratnu vrednost ispod svojstva
GetImportPackageDescriptionText.public override string GetImportPackageDescriptionText { get { return "Package Description"; } }Ova vraćena vrednost je opis paketa koji se pojavljuje zajedno sa imenom paketa na stranici za izbor paketa u čarobnjaku Package Deployer .
Promenite dugi naziv paketa tako što ćete urediti povratnu vrednost ispod svojstva
GetLongNameOfImport.public override string GetLongNameOfImport { get { return "Package Long Name"; } }Dugi naziv paketa se prikazuje na sledećoj stranici nakon što ste izabrali paket za instalaciju.
Pored toga, u paketu su dostupne sledeće funkcije i promenljive:
+Ime Tip Opis CreateProgressItem(String) Function Koristi se za kreiranje nove stavke napretka u korisničkom interfejsu (UI). RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Koristi se za ažuriranje napretka kreiranog pozivom CreateProgressItem(String).
ProgressPanelItemStatus je enum sa sledećim vrednostima:
Rad = 0
Kompletno = 1
Failed = 2
Upozorenje = 3
Nepoznato = 4RaiseFailEvent(String, Exception) Function Koristi se za neuspeh uvoza trenutnog statusa sa porukom o izuzimanju. <xref:Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageExtentionBase.ImportExtension.IsRoleAssociatedWithTeam(System.Guid,System.Guid)> Function Koristi se za utvrđivanje da li je uloga povezana sa određenim timom. IsWorkflowActive(Guid) Function Koristi se za utvrđivanje da li je određeni tok posla aktivan. PackageLog Pokazivač klase Pokazivač na pokrenuti interfejs za evidentiranje paketa. Ovaj interfejs se koristi u paketu za evidentiranje poruka i izuzetaka u datoteci evidencije paketa. RootControlDispatcher Svojstvo Ovo je interfejs za dispečera koji se koristi kako bi kontrola mogla da prikaže sopstveni korisnički interfejs tokom primene paketa. Koristite ovaj interfejs da obuhvatite sve elemente ili komande korisničkog interfejsa. Važno je proveriti ovu promenljivu za null vrednosti pre nego što je koristite jer možda nije podešena na vrednost. CrmSvc Svojstvo Pokazivač na klasu CrmServiceClient koja omogućava paketu da se obraća sistemu Dynamics 365 iz paketa. Koristite ovaj pokazivač za izvršavanje SDK metoda i drugih radnji u zamenjenim metodama. DataImportBypass Svojstvo Navedite da li Dynamics 365 Package Deployer preskače sve operacije uvoza podataka, kao što je uvoz Dataverse probnih podataka, podataka prostih datoteka i podataka izvezenih iz alatke Configuration Migration Tool. Navedite „true“ ili „false“. Podrazumevano je false.OverrideDataImportSafetyChecks Svojstvo Navedite da li Dinamics 365 Package Deployer zaobilazi neke od svojih bezbednosnih provera, što pomaže u poboljšanju performansi uvoza. Navedite trueilifalse. Podrazumevano jefalse.
Trebalo bi da podesite ovu osobinu samotrueako ciljna Dataverse instanca ne sadrži nikakve podatke.Sačuvajte projekat. Sledeći korak je da izgradite paket.
Izgradite i primenite
Sledeći odeljci opisuju kako izgraditi i primeniti paket.
Pravljenje
Izgradnja vašeg paketa je opisana u nastavku u zavisnosti od toga koji alat koristite.
Da biste izgradili paket kreiran pomoću CLI-a, možete učitati .csproj datoteku Visual Studio, ali umesto toga ćemo koristiti dotnet komandu i MSBuild. Primer u nastavku pretpostavlja da radni direktorijum sadrži datoteku *.csproj.
> dotnet publish
DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Opcionalno možete pogledati detalje izgrađenog paketa.
> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Paket sačinjavaju sledeće datoteke ispod fascikle <Project>\Bin\Debug.
- <Fascikla PackageName> : Ime fascikle je isto kao i ono koje ste promenili za ime fascikle paketa u koraku KSNUMKS.g ovog odeljkaDodajte prilagođeni kod . Ova fascikla sadrži sva rešenja, podatke konfiguracije, proste datoteke i sadržaj paketa.
Belešku
Možda ćete videti fasciklu .NET (npr. net472) koja sadrži fasciklu pdpublish. DLL i druge datoteke projekta se nalaze u fascikli pdpublish.
- <PackageName>.dll: Skupština sadrži prilagođeni kod za vaš paket. Naziv sklopa je podrazumevano isti kao i naziv vašeg projekta.
Primena
Kada kreirate paket, možete ga primeniti na Dataverse instancu koristeći alatku Package Deployer, Windows PowerShell ili CLI komandu.
Da biste je primenili pomoću alatke Package Deployer, prvo preuzmite alatku kao što je opisano u Dataverse alatkama za razvoj. Zatim pratite detaljne informacije o raspoređivanju paketa u članku Deploi pakete koristeći Package Deployer ili Vindovs PoverShell.
Da biste je primenili pomoću CLI, koristite komandu
pac package deploy.> pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zipBelešku
Da biste primenili paket u ciljno okruženje pomoću CLI, prvo morate da podesite profil potvrde identiteta i izaberete organizaciju. Još informacija: pac auth create, pac org select
Najbolji primeri iz prakse
U nastavku je navedeno nekoliko najboljih saveta za vežbanje koje treba slediti prilikom rada sa Package Deployer paketima.
Kreiranje paketa
Prilikom kreiranja paketa, programeri moraju da urade sledeće:
- Uverite se da su sklopovi paketa potpisani.
Primena paketa
Prilikom primene paketa, Dataverse administratori moraju da urade sledeće:
- Insistirajte na potpisanim sklopovima paketa, tako da možete pratiti sklop nazad do izvora.
- Testirajte paket na predprodukcijskoj instanci, poželjno u ogledalu proizvodne instance, pre nego što ga pokrenete na proizvodnoj instanci.
- Napravite rezervnu kopiju proizvodne instance pre primene paketa.