Vytvoření balíčků pro nástroj Package Deployer

Package Deployer umožňuje správcům nasadit balíčky na instance Microsoft Dataverse. Balíček Package Deployer může být tvořen jakoukoli nebo všemi následujícími položkami:

  • Jeden nebo více souborů řešení aplikace Dataverse.
  • Ploché soubory nebo soubory konfiguračních dat z nástroje pro migraci konfigurace. Další informace o tomto nástroji viz Přesunutí dat konfigurace mezi instancemi a organizacemi pomocí nástroje Configuration Migration tool.
  • Vlastní kód, který lze spustit před, během nebo po nasazení balíčku do instance Dataverse.
  • HTML obsah specifický pro balíček, který se může zobrazit na začátku nebo konci procesu nasazení. Tento obsah může být užitečný pro poskytnutí popisu řešení a souborů, které jsou nasazeny v balíčku.

Poznámka:

Existuje další typ balíčku nazývaný balíček modulu plug-in. Tento druh balíčku je určen pro sestavení závislá na modulech plug-in a nemá žádný vztah s balíčky Package Deployer.

Předpoklady

  • Ujistěte se, že máte připravena všechna řešení a další soubory, které chcete zahrnout do balíčku.
  • Visual Studio 2019 nebo pozdější nebo Visual Studio Code.

Přehled procesu

Chcete-li vytvořit balíček Package Deployer, proveďte následující kroky.

  • Vytvořte projekt Visual Studio nebo MSBuild
  • Přidejte řešení a další soubory do projektu
  • Aktualizujte poskytnuté soubory HTML (volitelné)
  • Zadejte hodnoty konfigurace balíčku
  • Definujte vlastní kód pro balíček
  • Sestavte a nasaďte balíček

Tyto kroky jsou podrobně popsány v tomto článku.

Vytvoření projektu balíčku

Prvním krokem je vytvoření projektu Visual Studio nebo MSBuild pro balíček. Chcete-li to provést, musíte mít na vývojovém počítači nainstalované jedno ze dvou dostupných rozšíření nástrojů. Pokud používáte Visual Studio Code, nainstalujte Microsoft Power Platform CLI. Pokud používáte Visual Studio 2019, nainstalujte Power Platform Tools pro Visual Studio. Rozšíření Power Platform tools je aktuálně dostupné pouze pro Visual Studio 2019. Vytvořený projekt však lze sestavit pomocí aplikace Visual Studio 2019 nebo novější.

Vyberte příslušnou kartu níže a zjistěte, jak vytvořit projekt pomocí požadovaného rozšíření nástroje. Výstup obou nástrojů je projekt v podobném formátu.

Spusťte příkaz pac package init k vytvoření počátečního balíčku. Další informace: pac package

pac package init help
pac package init --outputDirectory DeploymentPackage

Výsledný výstup rozhraní příkazového řádku obsahuje složky a soubory zobrazené níže. Jako příklad zde byl použit název složky „DeploymentPackage“.

C:.
└───DeploymentPackage
    │   DeploymentPackage.csproj
    │   PackageImportExtension.cs
    │
    └───PkgAssets
            ImportConfig.xml
            manifest.ppkg.json

Ve vytvořeném projektu najděte konfigurační soubor ImportConfig.xml ve složce PkgAssets a soubor PackageImportExtension.cs. Tyto soubory upravíte, jak je popsáno dále v tomto článku.

Přidání souborů balíčku

Po vytvoření projektu balíčku můžete začít přidávat řešení a další soubory do tohoto projektu.

Při použití rozhraní příkazového řádku můžete do projektu balíčku přidat externí balíčky, řešení a odkazy pomocí jednoho z dílčích příkazů pro přidání. Příkazem pac package help zobrazíte seznam dílčích příkazů. Nyní přidejme řešení do našeho balíčku.

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

Konfigurace balíčku

  1. Definujte konfiguraci balíčku přidáním informací o vašem balíčku do souboru ImportConfig.xml v projektu. Otevřete soubor pro úpravy. Následující seznam obsahuje informace o každém parametru a uzlu v konfiguračním souboru.

    installsampledata
    True nebo false. Je-li true, nainstaluje ukázková data do instance Dataverse. Tato data jsou stejná vzorová data, která můžete nainstalovat v Nastavení> oblast Správa dat v Dataverse.

    waitforsampledatatoinstall
    Pravda nebo nepravda. Je-li true, a pokud instalampledata je také true, před nasazením balíčku čeká na instalaci ukázkových dat.

    Poznámka:

    Ujistěte se, že jste nastavili instalampledata na true, pokud jste nastavili waitforsampledatatoinstall na true.

    agentdesktopzipfile
    Název souboru .zip, který chcete rozbalit. Pokud zde zadáte název souboru .zip, přidá se během procesu nasazení balíčku obrazovka, která vás vyzve k výběru umístění, kam chcete rozbalit obsah souboru.

    Tento atribut se běžně používá při vytváření balíčků pro Unified Service Desk pro Dynamics 365. Více informací o Unified Service Desk naleznete v Příručce pro správce Unified Service Desk pro Dynamics 3.0.

    agentdesktopexename
    Název souboru .exe nebo .msi v souboru .zip nebo adresa URL, která má být vyvolána na konci procesu nasazení.

    Tento atribut se běžně používá při vytváření balíčků pro Unified Service Desk.

    crmmigdataimportfile
    Název souboru výchozího konfiguračního datového souboru (.zip) exportovaného pomocí nástroje pro migraci konfigurace.

    • Můžete také importovat lokalizovanou verzi souboru s konfiguračními údaji na základě ID národního prostředí (LCID) zadaného pomocí nového nastavení modulu runtime při spuštění nástroje Package Deployer. Použijte uzel <cmtdatafile> (vysvětleno později) k určení lokalizovaných verzí souboru konfiguračních dat v balíčku a poté použijte metodu OverrideConfigurationDataFileLanguage (vysvětleno později) k určení logiky pro import konfiguračního datového souboru na základě ID národního prostředí zadaného pomocí nastavení modulu runtime. Importovat lze vždy jen jeden konfigurační datový soubor pomocí balíčku.

    • V případě Dataverse (místní): pokud váš konfigurační datový soubor obsahuje informace o uživateli a zdrojová i cílová instance Dataverse jsou ve stejné doméně služby Active Directory, informace o uživateli jsou importovány do cílové instance Dataverse. Chcete-li importovat informace o uživateli do instance Dataverse (místní) v jiné doméně, musíte do projektu zahrnout soubor mapování uživatelů (.xml) vygenerovaný pomocí nástroje pro migraci konfigurace a zadat jej spolu s konfiguračním datovým souborem pomocí atributu usermapfilename v uzlu <cmtdatafile> (vysvětleno později). Informace o uživateli nelze importovat do instancí Dataverse.
      Uzel <solutions>
      Obsahuje pole uzlů <configsolutionfile>, které popisují importovaná řešení. Pořadí řešení v tomto uzlu označuje pořadí, ve kterém budou řešení importována do cílové instance Dataverse.

      Uzel <configsolutionfile>
      Použijte tento uzel pod uzlem <solutions> pro určení jednotlivých řešení a následujících informací pro každé importované řešení:

    • solutionpackagefilename: Zadejte název souboru .zip vašeho řešení. Povinné:

    • overwriteunmanagedcustomizations: Určete, zda se mají při importu řešení přepsat veškerá nespravovaná řešení, které již existují v cílové instanci Dynamics 365. Tento atribut je volitelný, a pokud tento atribut nezadáte, ve výchozím nastavení jsou nespravovaná vlastní nastavení v existujícím řešení zachována v cílové instanci Dynamics 365.

    • publishworkflowsandactivateplugins: Určete, zda se mají po importu řešení publikovat pracovní postupy a aktivovat moduly plugin v cílové instanci Dynamics 365. Tento atribut je volitelný, a pokud nezadáte tento atribut, ve výchozím nastavení jsou pracovní toky publikovány a moduly plugin jsou aktivovány po importu řešení do cílové instance Dynamics 365.

      Do balíčku můžete přidat více názvů souborů řešení přidáním libovolného množství uzlů <configsolutionfile>. Pokud například chcete importovat tři soubory řešení, přidejte je následujícím způsobem:

    
    <solutions>  
    <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" />  
    </solutions>  
    
    

    Uzel <filestoimport>
    Obsahuje pole uzlů <configimportfile> a <zipimportdetails>, které se používají k popisu jednotlivých souborů, resp. souborů .zip, které mají být importovány.

    Uzel <configimportfile>
    Použijte tento uzel pod uzlem <configimportfile> pro popis souboru, který má být importován do Dataverse. Do balíčku můžete přidat soubory řešení přidáním libovolného množství uzlů <configimportfile>.

    
    <filestoimport>  
    <configimportfile filename="File.csv"  
    filetype="CSV"  
    associatedmap="FileMap"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true" />  
    <configimportfile filename="File.zip"  
    filetype="ZIP"  
    associatedmap="FileMapName"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true"/>  
    
    </filestoimport>  
    
    

    Níže se nachází seznam podporovaných atributů:

    Atribut Description
    filename Název souboru obsahujícího data importu. Pokud je soubor typu .zip, uzel <zipimportdetails> musí být přítomen s uzlem <zipimportdetail> pro každý soubor v souboru .zip.
    filetype Tato hodnota může být soubor csv, xml nebo zip.
    associatedmap Název mapování dat importu Dataverse, který se použije pro tento soubor. Pokud je prázdný, pro tento soubor název mapy importovaných dat se použije název určený systémem.
    importtoentity Může být název souboru exe v souboru .zip, adresa URL nebo soubor .msi pro poskytnutí odkazu pro vyvolání na konci procesu.
    datadelimiter Název oddělovače dat použitý v souboru importu. Platné hodnoty jsou jednoduché nebo dvojité uvozovky.
    fielddelimiter Název oddělovače polí použitý v souboru importu. Platné hodnoty jsou čárka nebo dvojtečka nebo jednoduchá uvozovka.
    enableduplicatedetection Určuje, zda povolit pravidla vyhledávání duplicit během importu dat. Platné hodnoty jsou true nebo false.
    isfirstrowheader Používá se k označení, že první řádek importovaného souboru obsahuje názvy polí. Platné hodnoty jsou true nebo false.
    isrecordownerateam Označuje, zda vlastník záznamu určeného k importu má být tým. Platné hodnoty jsou true nebo false.
    owneruser Označuje ID uživatele, který by měl tyto záznamy vlastnit. Výchozí hodnota je aktuálně přihlášený uživatel.
    waitforimporttocomplete Je-li true, systém před pokračováním čeká na dokončení importu. Je-li false, úlohy jsou zařazeny do fronty a pokračuje se.

    Uzel <zipimportdetails>
    Tento uzel obsahuje pole uzlů <zipimportdetail>, které popisují soubory obsažené v souboru zip, který se používá k importu do Dynamics 365.

    Uzel <zipimportdetail>
    Použijte tento uzel pod uzlem <zipimportdetails> pro poskytnutí informací o jednotlivém souboru v souboru .zip, který je uveden v uzlu <configimportfile>.

    <filestoimport>  
    ...  
    ...  
    <zipimportdetails>  
    <zipimportdetail filename="subfile1.csv" filetype="csv" importtoentity="account" />  
    <zipimportdetail filename="subfile2.csv" filetype="csv" importtoentity="contact" />  
    </zipimportdetails>  
    </filestoimport>  
    
    

    Podporované atributy jsou uvedeny níže:

    Atribut Description
    filename Název souboru obsahujícího data importu.
    filetype Tato hodnota může být soubor csv nebo xml.
    importtoentity Může být název souboru exe v souboru .zip, adresa URL nebo soubor .msi pro poskytnutí odkazu pro vyvolání na konci procesu.

    Uzel <filesmapstoimport>
    Tento uzel obsahuje pole uzlů <configmapimportfile> k importu. Pořadí souborů mapování v tomto uzlu označuje pořadí, v jakém jsou importovány. Informace o mapování dat viz Vytvoření mapování dat pro import.

    Uzel <configimportmapfile>
    Použijte tento uzel pod uzlem <filesmapstoimport> pro poskytnutí informací o jednotlivém souboru mapování, který se má importovat do Dataverse.

    <filesmapstoimport>  
    <configimportmapfile filename="FileMap.xml" />  
    </filesmapstoimport>  
    

    Uzel <cmtdatafiles>
    Tento uzel obsahuje pole uzlů <cmtdatafile>, které obsahuje lokalizovanou verzi souboru konfiguračních dat, který má být importován.

    Uzel <cmtdatafile>
    Použijte tento uzel pod uzlem <cmtdatafiles> pro určení lokalizovaných konfiguračních datových souborů spolu s ID národního prostředí (povinné) a souborem informací o uživateli (volitelné). Příklad:

    <cmtdatafiles>  
    <cmtdatafile filename="data_1033.zip" lcid="1033" usermapfilename="UserMap.xml" />  
    <cmtdatafile filename="data_1041.zip" lcid="1041" usermapfilename="" />  
    </cmtdatafiles>  
    

    Svou vlastní logiku můžete definovat v metodě OverrideConfigurationDataFileLanguage (vysvětleno později) k importu lokalizovaného souboru konfiguračních dat namísto výchozího (specifikovaného v crmmigdataimportfile) na základě hodnoty ID národního prostředí (LCID) zadané pomocí nastavení modulu runtime (vysvětleno později).

  2. Vyberte Uložit vše.

    Následující XML reprezentuje obsah ukázkového souboru ImportConfig.xml.

    <?xml version="1.0" encoding="utf-16"?>  
    <configdatastorage xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"  
    xmlns:xsd="https://www.w3.org/2001/XMLSchema"  
    installsampledata="true"  
    waitforsampledatatoinstall="true"  
    agentdesktopzipfile=""  
    agentdesktopexename=""  
    crmmigdataimportfile="data_1033.zip">  
    <solutions>  
    <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" />  
    </solutions>  
    <filestoimport>  
    <configimportfile filename="SampleOption.csv"  
    filetype="CSV"  
    associatedmap="SampleOption"  
    importtoentity="sample_option"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="false"/>  
    <configimportfile filename="File.zip"  
    filetype="ZIP"  
    associatedmap="FileMapName"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true"/>  
    <zipimportdetails>  
    <zipimportdetail filename="subfile1.csv"  
    filetype="csv"  
    importtoentity="account" />  
    <zipimportdetail filename="subfile2.csv"  
    filetype="csv"  
    importtoentity="contact" />  
    </zipimportdetails>  
    </filestoimport>  
    <filesmapstoimport>  
    <configimportmapfile filename="SampleOption.xml" />  
    </filesmapstoimport>  
    <cmtdatafiles>  
    <cmtdatafile filename="data_1033.zip"  
    lcid="1033"  
    usermapfilename="UserMap.xml" />  
    <cmtdatafile filename="data_1041.zip"  
    lcid="1041"  
    usermapfilename="" />  
    </cmtdatafiles>  
    </configdatastorage>  
    
    

Přidání vlastního kódu

Můžete přidat vlastní kód, který se spustí před, během a po importu balíčku do prostředí. Postup je následující.

  1. Upravte soubor PackageTemplate.cs (nebo PackageImportExtension.cs) v kořenové složce projektu.

  2. V souboru C# můžete:

    1. Zadat vlastní kód, který se má provést při inicializaci balíčku v definici metody přepsání InitializeCustomExtension.

      Tuto metodu lze použít k tomu, aby uživatelé mohli používat parametry modulu runtime při spuštění balíčku. Jako vývojář můžete do balíčku přidat podporu libovolného parametru modulu runtime pomocí vlastnosti RuntimeSettings, pokud máte kód pro zpracování na základě vstupu uživatele.

      Následující ukázkový kód například povoluje volaný parametr modulu runtime SkipChecks pro balíček, který má dvě možné hodnoty: true nebo false. Ukázkový kód zkontroluje, zda uživatel během spuštění nástroje Package Deployer určil nějaké parametry modulu runtime (buď pomocí příkazového řádku nebo prostředí PowerShell), a poté informace příslušným způsobem zpracovává. Pokud uživatel při spuštění balíčku nezadá žádný parametr modulu runtime, hodnota vlastnosti RuntimeSettings bude null.

      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ávci používat příkazový řádek nebo rutinu Import-CrmPackage k zadání, zda přeskočit bezpečnostní kontroly při spuštění nástroje Package Deployer pro import balíčku. Další informace: Nasazení balíčků pomocí nástroje Package Deployer a prostředí Windows PowerShell

    2. Zadat vlastní kód, který se má provést před importem řešení v definici metody přepsání PreSolutionImport pro určení, zda se mají zachovat nebo přepsat vlastní nastavení při aktualizaci zadaného řešení v cílové instanci Dataverse a zda se mají automaticky aktivovat moduly plugin a pracovní postupy.

    3. Použít definici metody přepsání RunSolutionUpgradeMigrationStep k provedení transformace nebo upgradu dat mezi dvěma verzemi řešení. Tato metoda se volá, pouze pokud se importované řešení již nachází v cílové instanci Dataverse.

      Tato funkce očekává následující parametry:

      Parametr Popis
      solutionName Název řešení
      oldVersion Číslo verze starého řešení
      newVersion Číslo verze nového řešení
      oldSolutionId Identifikátor GUID starého řešení.
      newSolutionId Identifikátor GUID nového řešení.
    4. Zadat vlastní kód, který se má provést před dokončením importu řešení v definici metody přepsání metody BeforeImportStage. Ukázková data a některé ploché soubory pro řešení uvedená v souboru ImportConfig.xml jsou importovány před dokončením importu řešení.

    5. Přepsat aktuálně vybraný jazyk pro import konfiguračních dat pomocí definice metody přepsání OverrideConfigurationDataFileLanguage. Pokud zadané ID národního prostředí (LCID) zadaného jazyka není nalezeno v seznamu dostupných jazyků v balíčku, bude importován výchozí datový soubor.

      Dostupné jazyky pro konfigurační data zadáte v uzlu <cmtdatafiles> v souboru ImportConfig.xml. Výchozí soubor pro import konfiguračních dat je uveden v atributu crmmigdataimportfile v souboru ImportConfig.xml.

      Přeskakování kontrol dat (OverrideDataImportSafetyChecks = true) zde může být efektivní, pokud jste si jisti, že cílová instance Dataverse neobsahuje žádná data.

    6. Zadat vlastní kód, který se má provést po dokončení importu v definici metody přepsání metody AfterPrimaryImport>. Zbývající ploché soubory, které nebyly importovány dříve, než byl zahájen import řešení, se nyní importují.

    7. Změňte výchozí název složky balíčku na požadovaný název balíčku. Chcete-li tak učinit, přejmenujte složku PkgFolder (nebo PkgAssets) v podokně Průzkumník řešení a poté upravte vrácenou hodnotu pod vlastností GetImportPackageDataFolderName.

      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";  
      }  
      }  
      
    8. Změnit název balíčku úpravou návratové hodnoty pod vlastností GetNameOfImport.

      public override string GetNameOfImport(bool plural)  
      {  
      return "Package Short Name";  
      }  
      

      Tato vrácená hodnota je název vašeho balíčku, který se objevuje na stránce pro výběr balíčku v průvodci nástrojem Dynamics 365 Package Deployer.

    9. Změnit popis balíčku úpravou návratové hodnoty pod vlastností GetImportPackageDescriptionText.

      
      public override string GetImportPackageDescriptionText  
      {  
      get { return "Package Description"; }  
      }  
      
      

      Tato vrácená hodnota je popis vašeho balíčku, který se objevuje vedle názvu balíčku na stránce pro výběr balíčku v průvodci nástrojem Package Deployer.

    10. Změnit dlouhý název balíčku úpravou návratové hodnoty pod vlastností GetLongNameOfImport.

      
      public override string GetLongNameOfImport  
      {  
      get { return "Package Long Name"; }  
      }  
      
      

      Dlouhý název balíčku se objeví na další stránce poté, co jste vybrali balíček, který chcete nainstalovat.

  3. Balíček navíc obsahuje následující funkce a proměnné:

    Název Typ Popis
    CreateProgressItem(String) Function Slouží k vytvoření nové položky postupu v uživatelském rozhraní (UI).
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Slouží k aktualizaci postupu vytvořeného voláním CreateProgressItem(String).

    ProgressPanelItemStatus je výčet s následujícími hodnotami:

    Pracovní = 0
    Dokončeno = 1
    Chyba = 2
    Varování = 3
    Neznámé = 4
    RaiseFailEvent(String, Exception) Function Slouží k selhání importu aktuálního stavu pomocí zprávy o výjimce.
    IsRoleAssoicatedWithTeam(Guid, Guid) Function Slouží k určení, zda je role přidružena k zadanému týmu.
    IsWorkflowActive(Guid) Function Slouží k určení, zda je zadaný pracovní postup aktivní.
    PackageLog Ukazatel třídy Ukazatel inicializovaného rozhraní protokolování balíčku. Toto rozhraní používá balíček k protokolování zpráv a výjimek do souboru protokolu balíčku.
    RootControlDispatcher Vlastnost Rozhraní dispečera sloužící k tomu, abyste mohli během implementace balíčku vykreslit vlastní uživatelské rozhraní. Toto rozhraní slouží k zalomení všech prvků nebo příkazů uživatelského rozhraní. Před použitím této proměnné je důležité zkontrolovat, zda obsahuje nebo neobsahuje hodnotu null, protože může být nastavena na hodnotu.
    CrmSvc Vlastnost Ukazatel na třídu CrmServiceClient, která umožňuje, aby balíček adresoval Dynamics 365 z balíčku. Tento ukazatel použijte k provedení metod SDK a dalších akcí v přepsaných metodách.
    DataImportBypass Vlastnost Zadejte, zda Dynamics 365 Package Deployer přeskočí všechny operace importu dat, jako je import ukázkových dat Dataverse, data plochých souborů a data exportovaná z Configuration Migration Tool. Zadejte true nebo false. Výchozí hodnota je false.
    OverrideDataImportSafetyChecks Vlastnost Určete, zda Dynamics 365 Package Deployer vynechává některé ze svých bezpečnostních kontrol, což pomáhá zlepšit výkonnost importu. Zadejte true nebo false. Výchozí hodnota je false.

    Měli byste nastavit tuto vlastnost na true, pouze pokud cílová instance Dataverse neobsahuje žádná data.
  4. Uložte projekt. Dalším krokem je sestavení balíčku.

Sestavení a nasazení

Následující části popisují, jak sestavit a nasadit balíček.

Sestavení

Sestavení balíčku je popsáno níže v závislosti na tom, jaký nástroj používáte.

Chcete-li sestavit balíček vytvořený pomocí CLI, můžete načíst soubor .csproj do Visual Studio, ale místo toho použijeme příkaz dotnet a MSBuild. Níže uvedený příklad předpokládá, že pracovní adresář obsahuje soubor *.csproj.

> dotnet publish

DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip

Volitelně se můžete podívat na detaily sestaveného balíčku.

> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip

Váš balíček tvoří následující soubory ve složce <Project>\Bin\Debug.

  • Složka <PackageName>: Název složky je stejný jako název složky, kterou jste změnili pro název složky balíčku v kroku 2.g této části Přidání vlastního kódu. Tato složka obsahuje všechna řešení, konfigurační data, ploché soubory a obsah balíčku.

Poznámka:

Můžete vidět složku .NET (např. net472) obsahující složku pdpublish. Vaše DLL a další soubory projektu jsou v této složce pdpublish.

  • <PackageName>.dll: Sestavení obsahuje vlastní kód vašeho balíčku. Výchozí název sestavení je stejný jako název projektu.

Nasadit

Po vytvoření balíčku jej můžete nasadit do instance Dataverse pomocí nástroje Package Deployer nebo prostředí Windows PowerShell nebo příkaz rozhraní příkazového řádku.

  • K nasazení pomocí nástroje Package Deployer si nejprve stáhněte tento nástroj, jak je popsáno v části Vývojové nástroje Dataverse. Dále postupujte podle podrobných informací o nasazení balíčků v článku Nasazení balíčků pomocí Package Deployer nebo Windows PowerShell.

  • Chcete-li provést nasazení pomocí rozhraní příkazového řádku, použijte příkaz pac package deploy.

    > pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
    

    Poznámka:

    Chcete-li nasadit balíček do cílového prostředí pomocí rozhraní příkazového řádku, musíte nejprve nastavit profil ověřování a vybrat organizaci. Další informace: pac auth create, pac org select

Osvědčené postupy

Níže je uvedeno několik tipů osvědčených postupů, které byste měli dodržovat při práci s balíčky Package Deployer.

Vytváření balíčků

Při vytváření balíčků musí vývojáři:

  • Zajistit, že jsou podepsány sestavení balíčků.

Nasazování balíčků

Při nasazování balíčků musí správci aplikace Dataverse:

  • Trvat na sestavení podepsaného balíčku tak, abyste mohli sledovat sestavení zpět k jeho zdroji.
  • Otestovat balíček na předprodukční instanci, nejlépe zrcadlový obraz produkční instance, před jeho spuštěním v produkční instanci.
  • Zálohovat produkční instanci před nasazením balíčku.

Viz také

Nástroj Solution Packager