Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Package Deployer võimaldab administraatoritel juurutada pakette Microsoft Dataverse'i instantsides. Package Deployer paketis võib sisalduda mõni või kõik allnimetatutest:
- Üks või mitu Dataverse-i lahendusefaili.
- Lamefailid või konfiguratsiooni migreerimise tööriistast eksporditud konfiguratsiooniandmete fail. Lisateavet tööriista kohta leiate jaotisest Konfiguratsiooniandmete teisaldamine eksemplaride ja organisatsioonide vahel Konfiguratsiooni ülemineku tööriista abil.
- Kohandatud kood, mida saab käitada enne paketi juurutamist Dataverse'i eksemplari või selle ajal või pärast seda.
- Paketiga seotud HTML-sisu, mida võidakse kuvada juurutusprotsessi alguses ja lõpus. See on kasulik paketis juurutatud lahenduste ja failide kirjelduse esitamiseks.
Märkus.
On olemas ka teine paketitüüp mida nimetatakse lisandmoodulipaketiks. Sellist tüüpi pakett on lisandmoodulist sõltuvate assemblerite jaoks ja sel pole seost pakettidega Package Deployer .
Eeltingimused
- Veenduge, et kõik lahendused ja failid, mida soovite paketti kaasata, oleksid selleks valmis.
- Visual Studio 2019 või hiljem või Visual Studio Code.
Protsessi ülevaade
Paketi loomiseks toimige järgmiselt. Package Deployer
- Loo Visual Studio või MSBuild projekt
- Projektile lahenduste ja muude failide lisamine
- Esitatud HTML-failide värskendamine (valikuline)
- Määrake paketi konfiguratsiooniväärtused
- Määratlege paketi kohandatud kood
- Paketi koostamine ja juurutamine
Neid samme on selles artiklis üksikasjalikult kirjeldatud.
Projekti paketi loomine
Esimene samm on luua Visual Studio või MSBuild projekt selle paketi jaoks. Selleks peab teil olema arendusarvutisse installitud üks kahest saadaolevast tööriistalaiendist. Kui kasutad Visual Studio Code, paigalda Microsoft Power Platform CLI. Muidu, kui kasutad Visual Studio 2019 või hilisemat, paigalda Power Platform tööriistad Visual Studio jaoks.
Valige allolevalt vahekaardilt, et teada saada, kuidas luua projekti soovitud tööriistalaiendiga. Mõlemad tööriistad väljundid projekti sarnases vormingus.
Käivitage algne pakett paketi algse käsuga. Lisateave: paketi pakkimine
pac package init help
pac package init --outputDirectory DeploymentPackage
Tulemuseks saadud CLI väljund sisaldab allpool kuvatavaid kaustu ja faile. Siin on näitena kasutatud kausta nime "DeploymentPackage".
C:.
└───DeploymentPackage
│ DeploymentPackage.csproj
│ PackageImportExtension.cs
│
└───PkgAssets
ImportConfig.xml
manifest.ppkg.json
Loodud projektis leidke PkgAssets kaustast konfiguratsioonifail ImportConfig.xml ja fail PackageImportExtension.cs. Sa muudad neid faile selles artiklis hiljem kirjeldatud viisil.
Paketi failide lisamine
Pärast pakettlahenduse projekti loomist saate sellele projektile lisada lahendusi ja muid faile.
CLI kasutamisel saate lisada väliseid pakette, lahendusi ja viiteid oma pakett projektile, kasutades ühte alamkommandruutidest . Sisetage pac package help et näha käskude loendit. Lisame oma paketti lahenduse.
> 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.
Paketi konfigureerimine
Määratlege paketi konfiguratsioon, lisades oma paketi teabe faili ImportConfig.xml, mis on saadaval projektis. Näite ja kehtivate elementide ja atribuutide kirjelduste saamiseks vaadake ImportConfig Reference’i .
Kohandatud koodi lisamine
Saate lisada kohandatud koodi, mis käivitub enne paketti importimist, selle ajal ja pärast importimist. Selleks järgige järgmisi juhiseid.
Redigeerige PackageTemplate.cs (või PackageImportExtension.cs) faili projekti juurkaustas.
C# failis saate teha järgmist.
Sisestage kohandatud kood, mis käivitatakse paketi lähtestamisel meetodi
InitializeCustomExtensionalistamisdefinitsioonis.Selle meetodi abil saavad kasutajad kasutada käitusaja parameetreid paketi käitamisel. Arendajana saate paketile lisada mis tahes käitusaja parameetri toe, kasutades RuntimeSettings atribuuti seni, kuni teil on kood selle töötlemiseks kasutaja sisestuse põhjal.
Näiteks lubab järgmine näidiskood käitusaja parameetri nimega
SkipCheckspaketi jaoks, millel on kaks võimalikku väärtust: tõene või väär. Näidiskood kontrollib, kas kasutaja on Package Deployeri käitamise (käsurea või PowerShelli abil) ajal määranud käitusaja parameetrid ja seejärel töötleb teavet vastavalt. Kui kasutaja ei määra paketi käitamise ajal käitusaja parameetrit, siis RuntimeSettings atribuut on tühiväärtusega.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"); } }See võimaldab administraatoril kasutada käsurida või Import-CrmPackage i cmdlet-käsku, et määrata, kas Package Deployer tööriista käitades jätta ohutuskontrollid vahele paketi importimiseks. Lisainfo:
Deploy pakette Package Deployeri ja PowerShell Sisestage kohandatud kood, mis käivitatakse enne lahenduste importimist meetodi
PreSolutionImportalistamisdefinitsioonis, et määrata, kas säilitada või kirjutada kohandused üle määratud lahenduse värskendamisel Dataverse'i sihteksemplaris ning kas aktiveerida lisandmoodulid ja töövood automaatselt.Andmete teisendamiseks või lahenduse kahe versiooni vaheliseks uuendamiseks kasutage ``ülekirjutusmeetodi`` definitsiooni. Seda meetodit kutsutakse ainult siis, kui imporditav lahendus on sihteksemplaris `` juba olemas``.
RunSolutionUpgradeMigrationStepDataverseSee funktsioon eeldab järgmisi parameetreid.
Parameeter Kirjeldus solutionNameLahenduse nimi oldVersionVana lahenduse versiooninumber newVersionUue lahenduse versiooninumber oldSolutionIdVana lahenduse GUID. newSolutionIdUue lahenduse GUID. OverrideSolutionImportDecisionloendi tagastamise meetodi alistamine, mis määrab, kas lahenduse importimine jäetakse vahele, värskendatakse või täiendatakse (vaikimisi).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); }Sisestage kohandatud kood, mis käivitatakse enne lahenduse importimise lõpuleviimist meetodi
BeforeImportStagealistamisdefinitsioonis. Näidisandmed ja mõned lamefailid failisImportConfig.xmlmääratud lahenduste jaoks imporditakse enne lahenduse importimise lõpulejõudmist.Konfiguratsiooniandmete impordi puhul tühista valitud keel, kasutades `
OverrideConfigurationDataFileLanguage` alistamismeetodi definitsiooni. Kui paketi saadaolevate keelte loendist ei leita määratud keele määratud lokaadi ID-d (LCID), imporditakse vaikeandmefail.Konfigureerimisandmete jaoks saadaolevad keeled saate määrata faili
<cmtdatafiles>sõlmesImportConfig.xml. Konfiguratsiooniandmete impordi vaikefail on määratud failicrmmigdataimportfileatribuudisImportConfig.xml.Andmekontrollide vahelejätmine (OverrideDataImportSafetyChecks = true) võib siin olla efektiivne, kui olete kindel, et sihtobjekt ei sisalda andmeid. Dataverse
Sisestage kohandatud kood, mis käivitatakse pärast lahenduse importimise lõpuleviimist meetodi
AfterPrimaryImport>alistamisdefinitsioonis. Ülejäänud lamefailid, mida enne lahenduse impordi algust varem ei imporditud, imporditakse nüüd.Muutke paketi kausta vaikenimi soovitud paketi nimeks. Selleks nimetage
PkgFolder(või PkgAssets) kausta Solution Explorer paneelis ümber ning seejärel muuda tagastusväärtustGetImportPackageDataFolderNameomaduse all.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"; } }Muutke paketi nime, redigeerides atribuudi
GetNameOfImporttagastusväärtust.public override string GetNameOfImport(bool plural) { return "Package Short Name"; }See tagastatud väärtus on sinu paketi nimi, mis ilmub Dynamics 365 Package Deployeri viisardi paketi valiku lehel.
Muutke paketi kirjeldust, redigeerides atribuudi
GetImportPackageDescriptionTexttagastusväärtust.public override string GetImportPackageDescriptionText { get { return "Package Description"; } }See tagastatud väärtus on paketi kirjeldus, mis kuvatakse paketi nime kõrval paketi valiku lehel ``viisardis``. Package Deployer
Muutke paketi pikka nime, redigeerides atribuudi
GetLongNameOfImporttagastusväärtust.public override string GetLongNameOfImport { get { return "Package Long Name"; } }Paketi pikk nimi kuvatakse järgmisel lehel pärast seda, kui olete valinud installitava paketi.
Lisaks on paketile saadaval järgmised funktsioonid ja muutujad:
Nimi Tüüp Kirjeldus CreateProgressItem(String) Funktsioon Kasutatakse kasutajaliideses (UI) uue poolelioleva üksuse loomiseks. RaiseUpdateEvent(String, ProgressPanelItemStatus) Funktsioon Kasutatakse CreateProgressItem(String) kutse abil loodud edenemise värskendamiseks.
ProgressPanelItemStatus on enum järgmiste väärtustega:
Töötamine = 0
Täielik = 1
Nurjunud = 2
Hoiatus = 3
Tundmatu = 4RaiseFailEvent(String, Exception) Funktsioon Kasutatakse praeguse oleku importimise nurjumiseks erandi teatega. IsRoleAssociatedWithTeam(Guid, Guid) Funktsioon Kasutatakse selleks, et määratleda, kas roll on seostatud määratud meeskonnaga. IsWorkflowActive(Guid) Funktsioon Kasutatakse selleks, et määratleda, kas määratud töövoog on aktiivne. PackageLog Klassi viit See on viide paketi lähtestatud logimisliidesele. Seda liidest kasutab pakett sõnumite ja erandite logimiseks paketi logifaili jaoks. RootControlDispatcher Atribuut See on dispetšeri liides, mida kasutatakse selleks, et teie juhtelement saaks paketi juurutamise ajal oma kasutajaliidese renderdada. Selle liidese abil saate mähkida kõik kasutajaliidese elemendid või käsud. Enne muutuja kasutamist on oluline kontrollida, kas selles on tühiväärtusi, kuna sellele ei pruugita väärtust määrata. CrmSvc Atribuut Viide CrmServiceClient klassile, mis võimaldab paketil aadressida Dynamics 365 paketi sees. Selle abil saate käitada tühistatud meetodites SDK-meetodeid ja muid toiminguid. DataImportBypass Atribuut Täpsusta, kas Dynamics 365 Package Deployer jätab vahele kõik andmete importimise toimingud, nagu Dataverse'i prooviandmete, lamedafailide andmete ja konfiguratsiooni migratsiooni tööriistast eksporditud andmed. Määrake: tõene või väär. Vaikesäte on false.OverrideDataImportSafetyChecks Atribuut Täpsusta, kas Dynamics 365 Package Deployer möödub mõningatest ohutuskontrollidest, mis aitab importimise jõudlust parandada. Määrake: truevõifalse. Vaikesäte onfalse.
Selle atribuudi väärtusekstruepeaksite määrama ainult siis, kui sihtobjekt Dataverse ei sisalda andmeid.Salvestage oma projekt. Järgmine etapp on paketi ehitamine.
Ehita ja juuruta
Järgmistes osades kirjeldatakse paketi loomist ja juurutamist.
Koosta
Paketi koostamist kirjeldatakse allpool, olenevalt sellest, millist tööriista te kasutate.
CLI-ga loodud paketi loomiseks võiks laadida .csproj faili Visual Studio'sse, kuid selle asemel kasutame dotnet käsku ja MSBuildi. Allolevas näites eeldatakse, et töökataloog sisaldab faili *.csproj.
> dotnet publish
DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Soovi korral saate vaadata sisseehitatud paketi üksikasju.
> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Teie pakett on loodud failis <Projekt>\Bin\Debug kaustas.
- <Kaust> PackageName: kausta nimi on sama, mida muutsite oma paketi kausta nime selle jaotise juhises 2.g Kohandatud koodi lisamine. See kaust sisaldab teie paketi kõiki lahendusi, konfiguratsiooniandmeid, lamefaile ja sisu.
Märkus.
Võid näha .NET kausta (nt net472), mis sisaldab pdpublish kausta. Teie DLL muud projektifailid asuvad selles pdpublish kaustas.
- <PackageName>.dll: koost sisaldab teie paketi kohandatud koodi. Vaikimisi on assembleri nimi sama mis teie projekti nimi.
Juuruta
Pärast paketi loomist saad selle Dataverse'i instantsil juurutada Package Deployeri tööriista, Windows PowerShelli või CLI käsu abil.
Tööriista juurutamiseks laadige Package Deployer esmalt tööriist alla, nagu on kirjeldatud Dataverse arendustööriistades. Järgmisena järgige üksikasjalikku teavet pakettide juurutamise kohta artiklis Deploy packages using Package Deployer või Windows PowerShell.
CLI abil juurutamiseks kasutage
pac package deploykäsku.> pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zipMärkus.
Paketi juurutamiseks sihtkeskkonda CLI abil peate esmalt seadistama autentimisprofiili ja valima organisatsiooni. Lisateave: auth paketi loomine, paketi org valik
Head tavad
Allpool on toodud mõned parima tava näpunäited, mida pakettidega töötamisel Package Deployer järgida.
Paketi loomine
Pakettide loomisel peavad arendajad:
- Veenduge, et paketikomplektid on allkirjastatud.
Pakettide juurutamine
Kui juurutate pakette, Dataverse administraatorid peavad:
- Nõudke allkirjastatud paketikomplekte , et saaksite jälgida koostu selle allikani.
- Testige paketti tootmiseelses eksemplaris, eelistatavalt tootmiseksemplari peegelpildis, enne kui käivitate selle tootmiseksemplaris.
- Varundage tootmiseksemplar enne paketi juurutamist.