Pakettide loomine Package Deployeri tööriistale

Package Deployer võimaldab administraatoritel juurutada pakette Microsoft Dataverse'i instantsides. Package Deployer paketis võib sisalduda mõni või kõik allnimetatutest:

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.

  1. Redigeerige PackageTemplate.cs (või PackageImportExtension.cs) faili projekti juurkaustas.

  2. C# failis saate teha järgmist.

    1. Sisestage kohandatud kood, mis käivitatakse paketi lähtestamisel meetodi InitializeCustomExtension alistamisdefinitsioonis.

      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 SkipChecks paketi 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

    2. Sisestage kohandatud kood, mis käivitatakse enne lahenduste importimist meetodi PreSolutionImport alistamisdefinitsioonis, 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.

    3. Andmete teisendamiseks või lahenduse kahe versiooni vaheliseks uuendamiseks kasutage ``ülekirjutusmeetodi`` definitsiooni. Seda meetodit kutsutakse ainult siis, kui imporditav lahendus on sihteksemplaris `` juba olemas``. RunSolutionUpgradeMigrationStep Dataverse

      See funktsioon eeldab järgmisi parameetreid.

      Parameeter Kirjeldus
      solutionName Lahenduse nimi
      oldVersion Vana lahenduse versiooninumber
      newVersion Uue lahenduse versiooninumber
      oldSolutionId Vana lahenduse GUID.
      newSolutionId Uue lahenduse GUID.
    4. OverrideSolutionImportDecision loendi 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);
      }
      
    5. Sisestage kohandatud kood, mis käivitatakse enne lahenduse importimise lõpuleviimist meetodi BeforeImportStage alistamisdefinitsioonis. Näidisandmed ja mõned lamefailid failis ImportConfig.xml määratud lahenduste jaoks imporditakse enne lahenduse importimise lõpulejõudmist.

    6. 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õlmes ImportConfig.xml. Konfiguratsiooniandmete impordi vaikefail on määratud faili crmmigdataimportfile atribuudis ImportConfig.xml.

      Andmekontrollide vahelejätmine (OverrideDataImportSafetyChecks = true) võib siin olla efektiivne, kui olete kindel, et sihtobjekt ei sisalda andmeid. Dataverse

    7. 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.

    8. Muutke paketi kausta vaikenimi soovitud paketi nimeks. Selleks nimetage PkgFolder (või PkgAssets) kausta Solution Explorer paneelis ümber ning seejärel muuda tagastusväärtust GetImportPackageDataFolderName omaduse 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";  
          }  
      }  
      
    9. Muutke paketi nime, redigeerides atribuudi GetNameOfImport tagastusvää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.

    10. Muutke paketi kirjeldust, redigeerides atribuudi GetImportPackageDescriptionText tagastusvää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

    11. Muutke paketi pikka nime, redigeerides atribuudi GetLongNameOfImport tagastusvää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.

  3. 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 = 4
    RaiseFailEvent(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: true või false. Vaikesäte on false.

    Selle atribuudi väärtuseks true peaksite määrama ainult siis, kui sihtobjekt Dataverse ei sisalda andmeid.
  4. 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.

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.

Vt ka

Lahenduse pakendaja tööriist