Vytvorenie balíkov pre nástroj Package Deployer
Package Deployer umožňuje správcom nasadiť balíky na inštancie systému Microsoft Dataverse. Balík Package Deployer môže obsahovať čokoľvek z tohto:
- Jeden alebo viac súborov riešenia Dataverse.
- Textové súbory alebo súbor konfiguračných údajov z Configuration Migration Tool. Viac informácií o nástroji sa dozviete v časti Presun konfiguračných údajov cez inštancie a organizácie s nástrojom Configuration Migration Tool.
- Vlastný kód, ktorý sa spustí pred, počas, alebo po nasadení balíka do inštancie Dataverse.
- Obsah HTML špecifický pre balík, ktorý môžete zobraziť na začiatku a na konci procesu nasadenia. Tento obsah môže byť užitočný pre popis riešení a súborov, ktoré sú nasadené v balíčku.
Poznámka
Existuje ďalší typ balíka s názvom doplnkový balík. Tento druh balíka je určený pre zostavy závislé od doplnkov a nemá žiadny vzťah s balíkmi Package Deployer.
Požiadavky
- Uistite sa, že máte pripravené všetky riešenia a iné súbory, ktoré chcete zahrnúť do balíka.
- Visual Studio 2019 alebo neskôr, alebo Visual Studio Kód.
Prehľad procesov
Ak chcete vytvoriť balík Package Deployer , vykonajte nasledujúce kroky.
- Vytvorenie projektu Visual Studio alebo MSBuild
- Pridajte riešenia a ďalšie súbory do projektu
- Aktualizovať poskytnuté súbory HTML (voliteľné)
- Zadajte konfiguračné hodnoty balíka
- Definujte vlastný kód pre svoj balík
- Zostavte a nasaďte balík
Tieto kroky sú podrobne popísané v tomto článku.
Vytvorenie projektu balíka
Prvým krokom je vytvorenie projektu Visual Studio alebo MSBuild pre balík. Aby ste to dosiahli, musíte mať na svojom vývojovom počítači nainštalované jedno z dvoch dostupných rozšírení nástrojov. Ak používate Visual Studio Code, nainštalujte Microsoft Power Platform CLI. V opačnom prípade, ak používate Visual Studio 2019 alebo novší, nainštalujte si Power Platform nástroje pre Visual Studio.
Vyberte príslušnú kartu nižšie a zistite, ako vytvoriť projekt pomocou požadovaného rozšírenia nástroja. Oba nástroje vydávajú projekt v podobnom formáte.
Spustite príkaz pac package init a vytvorte počiatočný balík. Ďalšie informácie: pac package
pac package init help
pac package init --outputDirectory DeploymentPackage
Výsledný výstup CLI obsahuje priečinky a súbory zobrazené nižšie. Ako príklad bol tu použitý názov priečinka "DeploymentPackage".
C:.
└───DeploymentPackage
│ DeploymentPackage.csproj
│ PackageImportExtension.cs
│
└───PkgAssets
ImportConfig.xml
manifest.ppkg.json
Vo vytvorenom projekte nájdite konfiguračný súbor ImportConfig.xml v priečinku PkgAssets a súbor PackageImportExtension.cs. Tieto súbory upravíte tak, ako je popísané ďalej v tomto článku.
Pridať súbory balíka
Po vytvorení projektu balíka môžete začať pridávať riešenia a ďalšie súbory do tohto projektu.
Pri používaní CLI môžete do projektu balíka pridať externé balíky, riešenia a referencie pomocou jedného z čiastkových príkazov add. Ak chcete zobraziť zoznam čiastkových príkazov, zadajte pac package help
. Pridajme riešenie do nášho balíka.
> 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.
Konfigurácia balíka
Definujte konfiguráciu balíka pridaním informácií o vašom balíku do súboru ImportConfig.xml, ktorý je k dispozícii v projekte. Príklad a popis platných prvkov a atribútov, ktoré sa majú použiť, nájdete v Referenčná príručka ImportConfig .
Pridať vlastný kód
Môžete pridať vlastný kód, ktorý sa spustí pred, počas a po importe balíka do prostredia. Postupujte podľa týchto pokynov.
Upravte PackageTemplate.cs (alebo PackageImportExtension.cs) v koreňovom priečinku projektu.
V súbore C# môžete:
Zadajte vlastný kód, ktorý sa má vykonať po inicializácii balíka v definícii metódy prepísania
InitializeCustomExtension
.Túto metódu je možné použiť na to, aby používatelia mohli používať parametre runtime počas spúšťania balíka. Ako vývojár môžete do balíka pridať podporu ľubovoľného parametra runtime pomocou vlastnosti RuntimeSettings, pokiaľ máte kód na jej spracovanie na základe vstupu používateľa.
Napríklad nasledujúci vzorový kód umožňuje spustenie parametra runtime s názvom
SkipChecks
pre balík, ktorý má dve možné hodnoty: true alebo false. Vzorový kód skontroluje, či užívateľ zadal počas behu Package Deployer nejaké parametre runtime (buď pomocou príkazového riadka alebo PowerShell) a potom príslušné informácie spracuje. Ak používateľ počas spúšťania balíka neurčí žiadny parameter runtime, hodnota vlastnosti RuntimeSettings bude prázdna.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"); }
Tento kód umožňuje správcovi používať príkazový riadok alebo cmdlet Import-CrmPackage, aby určil, či sa majú preskočiť kontroly bezpečnosti počas nástroja Package Deployer na import balíka. Ďalšie informácie: Nasadenie balíkov pomocou nástrojov Package Deployer a Windows PowerShell
Zadajte vlastný kód, ktorý sa má vykonať pred importom riešení v definícii metódy prepísania
PreSolutionImport
na určenie, či sa majú zachovať alebo prepísať prispôsobenia pri aktualizácii zadaného riešenia v cieľovej inštancii Dataverse a či sa majú automaticky aktivovať doplnky a pracovné postupy.Na vykonanie transformácie údajov alebo inovácie medzi dvoma verziami riešenia použite definíciu metódy prepísania
RunSolutionUpgradeMigrationStep
. Táto metóda sa volá iba vtedy, ak sa riešenie, ktoré importujete, už nachádza v cieli Dataverse príklad.Táto funkcia očakáva nasledujúce parametre:
Parameter Popis solutionName
Názov riešenia oldVersion
Číslo verzie starého riešenia newVersion
Číslo verzie nového riešenia oldSolutionId
GUID starého riešenia. newSolutionId
GUID nového riešenia. Zadajte vlastný kód, ktorý sa má vykonať pred dokončením importu riešenia v definícii prepísania metódy
BeforeImportStage
. Vzorové údaje a niektoré textové súbory pre riešenia uvedené v súboreImportConfig.xml
sa importujú pred dokončením importu riešenia.Prepíšte aktuálne vybratý jazyk pre import konfiguračných údajov pomocou definície metódy prepísania
OverrideConfigurationDataFileLanguage
. Ak zadané ID miestneho nastavenia (LCID) zadaného jazyka nenájdete v zozname dostupných jazykov v balíku, importuje sa predvolený dátový súbor.Dostupné jazyky pre konfiguračné údaje zadáte v uzle
<cmtdatafiles>
v súboreImportConfig.xml
. Predvolený súbor na import konfiguračných údajov je uvedený v atribútecrmmigdataimportfile
v súboreImportConfig.xml
.Preskočenie kontrol údajov (OverrideDataImportSafetyChecks = true) tu môže byť účinné, ak ste si istí, že cieľová Dataverse inštancia neobsahuje žiadne údaje.
Zadajte vlastný kód, ktorý sa má vykonať po dokončení importu v definícii prepísania metódy
AfterPrimaryImport
>. Zostávajúce ploché súbory, ktoré neboli importované skôr, pred spustením importu riešenia, sa importujú teraz.Zmeňte predvolený názov priečinka balíka na požadovaný názov balíka. Ak to chcete urobiť, premenujte priečinok
PkgFolder
(alebo PkgAssets) na table Prieskumník riešení a potom upravte návratovú hodnotu pod vlastnosťouGetImportPackageDataFolderName
.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"; } }
Zmeňte názov balíka úpravou návratovej hodnoty pod vlastnosťou
GetNameOfImport
.public override string GetNameOfImport(bool plural) { return "Package Short Name"; }
Táto vrátená hodnota je názov vášho balíka, ktorý sa zobrazí na stránke výberu balíka v sprievodcovi Dynamics 365 Package Deployer .
Zmeňte popis balíka úpravou návratovej hodnoty pod vlastnosťou
GetImportPackageDescriptionText
.public override string GetImportPackageDescriptionText { get { return "Package Description"; } }
Táto vrátená hodnota je popis balíka, ktorý sa zobrazuje vedľa názvu balíka na stránke výberu balíka v sprievodcovi Package Deployer .
Zmeňte dlhý názov balíka úpravou návratovej hodnoty pod vlastnosťou
GetLongNameOfImport
.public override string GetLongNameOfImport { get { return "Package Long Name"; } }
Dlhý názov balíka sa zobrazí na ďalšej stránke potom, čo ste vybrali balík na inštaláciu.
Balík má navyše k dispozícii nasledujúce funkcie a premenné:
Meno Typ Popis CreateProgressItem(String) Function Používa sa na vytvorenie novej položky postupu v používateľskom rozhraní (UI). RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Používa sa na aktualizáciu postupu vytvoreného volaním do CreateProgressItem(String).
ProgressPanelItemStatus je enumerácia s nasledujúcimi hodnotami:
Pracuje sa = 0
Dokončené = 1
Zlyhanie = 2
Upozornenie = 3
Neznáme = 4RaiseFailEvent(String, Exception) Function Používa sa na zlyhanie importu aktuálneho stavu pomocou správy o výnimke. IsRoleAssoicatedWithTeam(Guid, Guid) Function Používa sa na určenie, či je rola priradená konkrétnemu tímu. IsWorkflowActive(Guid) Function Používa sa na určenie, či je zadaný pracovný postup aktívny. PackageLog Ukazovateľ triedy Ukazovateľ na inicializované logovacie rozhranie balíka. Toto rozhranie používa balík na zaznamenávanie správ a výnimiek zo súboru denníka balíka. RootControlDispatcher Vlastnosť Dispečerské rozhranie, ktoré vám umožňuje ovládať vykreslenie vlastného používateľského rozhrania počas nasadenia balíka. Toto rozhranie slúži na zabalenie akýchkoľvek prvkov alebo príkazov používateľského rozhrania. Pred použitím tejto premennej je dôležité skontrolovať, či neobsahuje hodnoty null, pretože nemusí byť nastavená na hodnotu. CrmSvc Vlastnosť Ukazovateľ na triedu CrmServiceClient, ktorá umožňuje balíku adresovať Dynamics 365 zvnútra balíka. Tento ukazovateľ použite na spustenie metód SDK a ďalších akcií v prepísaných metódach. DataImportBypass Vlastnosť Uveďte, či Dynamics 365 Package Deployer preskočí všetky operácie importu údajov, napríklad import vzorových údajov Dataverse, údajov textových súborov a údaje exportované z nástroja Configuration Migration Tool. Zadajte možnosť true alebo false. Predvolené je false
.OverrideDataImportSafetyChecks Vlastnosť Zadajte, či Dynamics 365 Package Deployer obchádza niektoré z jeho bezpečnostných kontrol, čo pomáha pri zlepšovaní výkonu importu. Zadajte true
alebofalse
. Predvolené jefalse
.
Túto vlastnosť by ste mali nastaviť natrue
iba ak cieľová Dataverse inštancia neobsahuje žiadne údaje.Uložte svoj projekt. Ďalším krokom je vytvorenie balíka.
Vytvorenie a nasadenie
Nasledujúce časti popisujú, ako zostaviť a nasadiť balík.
Zostava
Vytvorenie balíka je popísané nižšie v závislosti od toho, ktorý nástroj používate.
Ak chcete vytvoriť balík vytvorený pomocou CLI, môžete načítať súbor .csproj do Visual Studio, ale namiesto toho použijeme príkaz dotnet a MSBuild. Príklad nižšie predpokladá, že pracovný adresár obsahuje súbor *.csproj.
> dotnet publish
DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Voliteľne si môžete pozrieť detaily zostaveného balíka.
> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Váš balík obsahuje nasledujúce súbory pod priečinkom <Project>\Bin\Debug.
- <PackageName> priečinok: Názov priečinka je rovnaký ako ten, ktorý ste zmenili pre názov priečinka balíčka v krok 2.g tejto sekcie Pridať vlastný kód. Tento priečinok obsahuje všetky riešenia, konfiguračné údaje, textové súbory a obsah balíka.
Poznámka
Môžete vidieť priečinok .NET (napr. net472) obsahujúci priečinok pdpublish. Vaša DLL a ďalšie súbory projektu sú v tomto priečinku pdpublish.
- <PackageName>.dll: Zostava obsahuje vlastný kód pre váš balík. Podľa predvoleného nastavenia názov zostavy je rovnaký ako váš názov projektu.
Nasadiť
Po vytvorení balíka ho môžete nasadiť v inštancii Dataverse pomocou nástroja Package Deployer, Windows PowerShell alebo príkazu CLI.
Na nasadenie pomocou nástroja Package Deployer je najprv potrebné stiahnuť si nástroj podľa opisu vývojových nástrojov Dataverse. Ďalej postupujte podľa podrobných informácií o nasadení balíka v článku Nasadenie balíkov pomocou Package Deployer alebo Windows PowerShell.
Ak chcete nasadiť pomocou CLI, použite príkaz
pac package deploy
.> pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Poznámka
Ak chcete nasadiť balík do cieľového prostredia pomocou CLI, musíte najprv nastaviť profil autentifikácie a vybrať organizáciu. Ďalšie informácie: pac auth create, pac org select
Osvedčené postupy
Nižšie je uvedených niekoľko tipov na osvedčené postupy, ktoré treba dodržiavať pri práci s balíkmi Package Deployer.
Vytváranie balíkov
Pri vytváraní balíkov musia vývojári:
- Uistite sa, že zostavy balíkov sú podpísané.
Nasadenie balíkov
Pri nasadzovaní balíčkov musia správcovia Dataverse:
- Trvajte na podpísaných zostavách balíkov , aby ste mohli zostavu sledovať späť k jej zdroju.
- Pred spustením na výrobná inštancia otestujte balík na predprodukčnej inštancii, pokiaľ možno zrkadlový obraz výrobná inštancia.
- Pred nasadením balíka si zálohujte výrobná inštancia .